{ "cells": [ { "cell_type": "markdown", "id": "653e9883", "metadata": {}, "source": [ "# Iterative Method\n", "**강좌**: *수치해석*" ] }, { "cell_type": "markdown", "id": "500baa5b", "metadata": {}, "source": [ "## Sparse Matrix\n", "- 많은 element가 0이고 일부만 값을 가지는 매우 크고 성긴 행렬임\n", "- 공학 문제에서 매우 큰 Sparse Matrix 해석이 필요함\n", "- Sparse matrix를 효과적으로 저장하고, 계산하는 전용 라이브러리가 존재함\n", " * `scipy.sparse` 내 다양한 함수가 존재함\n", " \n", "## Iterative Method\n", "### 개념\n", "매우 큰 행렬 System $Ax=b$ 를 반복해서 푸는 방법이다.\n", "\n", "기본 개념은 다음과 같다.\n", "- $A = A_1 - A_2$\n", " - $A_1$ 은 역행렬을 쉽게 구해지는 형태이다.\n", " \n", " $$\n", " A_1 x = A_2 x + b\n", " $$\n", " \n", "- 반복되는 해를 $x^{(k)}$ 하고 이를 적용한다.\n", "\n", " $$\n", " A_1 x^{(k+1)} = A_2 x^{(k)}+ b\n", " $$\n", "\n", "- $x^{(k)} \\rightarrow x$ 이면 오차 $e^{(k)} = x^{(k+1)} - x^{(k)} \\rightarrow 0$ 이다. 즉 오차가 $e^{(k)}$ 감소할 때 까지 반복한다.\n", "\n", " - 모든 경우에 오차가 감소하지 않는다. $A_1^{-1} A_2$ 의 Eigenvalue가 모두 1 보다 작아야 한다.\n", " \n", "### 예제\n", "지난 시간에 다룬 삼중 대각 행렬을 예제로 한다. \n", "\n", "많은 공학 시뮬레이션에서는 Banded Matrix가 많이 사용된다.\n", "\n", "$$\n", "\\begin{bmatrix}\n", "2.04 & -1 & & & &\\\\\n", "-1 & 2.04 & -1 & & & \\\\\n", "& & ... & & & \\\\\n", "& & & -1 & 2.04 & -1 \\\\\n", "& & & & -1 & 2.04\n", "\\end{bmatrix}\n", "T\n", "= \n", "\\begin{bmatrix}\n", "40.8 \\\\ 0.8 \\\\ ...\\\\ 0.8 \\\\ 200.8\n", "\\end{bmatrix}\n", "$$" ] }, { "cell_type": "code", "execution_count": 1, "id": "db2c1e52", "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "from matplotlib import pyplot as plt\n", "\n", "import numpy as np\n", "\n", "plt.style.use('ggplot')\n", "plt.rcParams['figure.dpi'] = 150" ] }, { "cell_type": "code", "execution_count": 2, "id": "4f011ba0", "metadata": {}, "outputs": [], "source": [ "# Dimension\n", "n = 10\n", "\n", "# Matrix system\n", "A = np.diag([2.04]*(n)) + np.diag([-1]*(n-1), -1) + np.diag([-1]*(n-1), 1)\n", "\n", "# Forcing term\n", "b = np.ones(n)*0.8\n", "b[0] += 40\n", "b[-1] += 200" ] }, { "cell_type": "code", "execution_count": 3, "id": "6b765b50", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 44.42707508, 49.83123316, 56.42864057, 64.48319361,\n", " 74.31707438, 86.32363813, 100.98314741, 118.88198259,\n", " 140.73609706, 167.41965542])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solve\n", "np.linalg.solve(A, b)" ] }, { "cell_type": "markdown", "id": "394e967b", "metadata": {}, "source": [ "### Point Jacobi Method\n", "이 방법은 $A_1 = D$ 로 한 경우이다.\n", "\n", "위 문제의 각 행은 다음과 같다.\n", "\n", "$$\n", "-T_{i-1} + 2.04 T_i - T_{i+1} = b_i\n", "$$\n", "\n", "Jacobi Method를 적용하면 (n+1) step 에서 i 번째 항은 (n) 번째 Off-diagnal 항을 이용해서 계산할 수 있다.\n", "\n", "$$\n", "T^{(n+1)}_i = \\frac{1}{2.04} (T^{(n)}_{i-1} + T^{(n)}_{i+1} + b_i)\n", "$$\n", "\n", "구현하는 과정은 다음과 같다.\n", "- 모든 i 에 대해서 $\\Delta T^{(n)}_i$ 를 구함\n", "- 모든 i 에 대해서 $T^{(n+1)}_i$ 최신화 함" ] }, { "cell_type": "code", "execution_count": 4, "id": "7b7ced05", "metadata": {}, "outputs": [], "source": [ "def jacobi(n, t, b, dt):\n", " \"\"\"\n", " Jacobi method\n", " \n", " Parameters\n", " ----------\n", " n : integer\n", " size\n", " t : array\n", " current solution\n", " b : array\n", " forcing term\n", " dt : array\n", " difference\n", " \"\"\"\n", " for i in range(1, n+1):\n", " dt[i] = (t[i-1] + t[i+1] + b[i-1])/2.04 - t[i]" ] }, { "cell_type": "code", "execution_count": 5, "id": "05eebce6", "metadata": {}, "outputs": [], "source": [ "n = 10\n", "tol = 1e-8\n", "\n", "# 양 끝점을 포함해서 행렬 만듬\n", "t = np.zeros(n+2)\n", "dt = np.empty_like(t)\n", "\n", "# Forcing term\n", "b = np.ones(n)*0.8\n", "b[0] += 40\n", "b[-1] += 200\n", "\n", "err = 1\n", "hist_jacobi = []\n", "while err > tol:\n", " # Run Jacobi\n", " jacobi(n, t, b, dt)\n", " \n", " # Compute Error\n", " err = np.linalg.norm(dt) / n\n", " hist_jacobi.append(err)\n", " \n", " # Update solution\n", " t += dt" ] }, { "cell_type": "code", "execution_count": 6, "id": "8da1d429", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 44.42707492 49.83123285 56.42864015 64.48319308 74.31707383\n", " 86.32363756 100.9831469 118.88198215 140.73609676 167.41965526]\n" ] } ], "source": [ "# Solution\n", "print(t[1:-1])" ] }, { "cell_type": "code", "execution_count": 7, "id": "559846e4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 40.79999999, 0.79999994, 0.79999998, 0.7999999 ,\n", " 0.79999997, 0.79999989, 0.79999998, 0.79999992,\n", " 0.79999999, 200.79999997])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Validation\n", "A @ t[1:-1]" ] }, { "cell_type": "code", "execution_count": 8, "id": "53b5b04e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Error')" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2UAAAKLCAYAAAB2TyAVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAABcSAAAXEgFnn9JSAAB4BklEQVR4nOzdd3iUVf7+8fucNBJCL4KAiCBNFAQVy67o6qKrWBZQXHtbdQUEBCtCEroNpFhWV0QUf4ogrIvI144rCoKoiPQWREUIPYHUc35/xGTIEkogyZNJ3q/r2mud83lmcofDAHeemWeM994LAAAAABAIG3QAAAAAAKjIKGUAAAAAECBKGQAAAAAEiFIGAAAAAAGilAEAAABAgChlAAAAABAgShkAAAAABIhSBgAAAAABopQBAAAAQIAoZQAAAAAQIEoZAAAAAASIUgYAAAAAAaKUAQAAAECAKGUAAAAAECBKGQAAAAAEKDLoADg2mzdvlvc+sK9fu3ZtSVJKSkpgGVA07Fl4Yb/CD3sWftiz8MOehZeKsF/GGNWrV++o708pC3Pe+0BL2f45EF7Ys/DCfoUf9iz8sGfhhz0LL+zXwfHyRQAAAAAIEKUMAAAAAAJEKQMAAACAAFHKAAAAACBAlDIAAAAACBClDAAAAAACxCXxAQAAgP1w6fbilffrGU6/rsaYUv16lDIAAABUeNnZ2dq3b58yMzPDqjyEgx07dkiSnHMBJymayMhIRUdHKzY2tsRLGqUMAAAAFVp2drZ27dqlSpUqqXr16rKWd/gUp8jI3MqRnZ0dcJIj571XVlaW0tPTlZGRoWrVqpXo7wtKGQAAACq0ffv2qVKlSqpcuXLQUcqlvLNMpf2SwGNhjFFMTIyio6OVmpqqffv2lejvD34MAAAAgAotMzNTlSpVCjoGyiBjjGJjY5Wenl6iX4dSBgAAgArLey/vPS9ZxEFFRETk/z4pKfzuAwAAAIAA8Z6yErZs2TLNmjVLGzZsUEpKirp3765rr7026FgAAAAAygjOlJWw9PR0NWzYUDfeeKOqV68edBwAAAAAZUyFPlO2bt06LVmyRGvWrNHq1au1Y8cORUVFacqUKYe8X2ZmpmbOnKl58+YpJSVF8fHxatu2rXr06KFatWoVOLZ9+/Zq3769JB32cQEAAABUPBX6TNm0adP0xhtv6Ouvv87/ULvDyczM1NChQzVt2jSlp6frjDPOUK1atfTZZ5/poYce0ubNm0s4NQAAAFCyGjRooAYNGgQd45C+/PJLNWjQQH379i3S/Tp27FjmvrcKfaasefPmOvHEE9W0aVM1bdpUd91112HvM2PGDK1cuVLNmzfXY489ln/51FmzZmny5Ml6/vnnlZSUVNLRAQAAAJQTFbqUXX311UU6Pjs7W3PmzJEk3XHHHQU+z6JLly6aO3euli9frnXr1umkk04qzqgAAAAAisFbb72l7OzsoGMUUKFfvlhUK1asUFpamo477jg1adLkgHnHjh0lSYsWLSrtaAAAAACOwIknnqhmzZoFHaOACn2mrKiSk5MlqdBCJin/7FjeceWd+8+b2rl9i3J++0X++rtlGhb+6wIAAIDw99FHH2n27Nn65ptvtHnzZuXk5OjEE0/UlVdeqbvvvlsxMTGF3m/hwoV68cUXtWDBAu3YsUM1a9ZUixYt1K1bN3Xr1q3AsatWrdK4ceM0b9487dixQ7Vq1dJ5552n++6775BF6rffftPIkSP16aefKjU1Vc2aNdOdd96pa6655oBjO3bsqE2bNunnn38+tl+QYkQpK4KUlBRJOuAKi3lq1qxZ4Dgp95L4eRf/yM7O1s6dO7VhwwZFRkaqYcOGh/2a999//wFr0dHRGjVqlCSpdu3aRfsmilHKd/OVvnGdJKn6vjRVqlMnsCw4cpGRuU/7OuxXWGC/wg97Fn7Ys/BTnHvmvdeOHTsUGRkpY8wxP155k/drLUkDBgzQ3r171aJFC7Vu3Vp79uzRt99+q8cff1zz5s3T1KlTFRERUeD+//znP5WQkCDvvdq1a6dzzjlHKSkpWrp0qdatW6cePXrkH/v555/r5ptv1r59+3Taaafp3HPP1Zo1azR9+nTNmTNHb7zxhs4+++z84/O+1q5du3TllVcqIyND5557rnbt2qV58+apb9+++vnnnzVgwIACmfL2ef/v7VC897LWqk6dOiX2e4RSVgTp6emSdNCfAuS9xyzvOElau3ZtgQt/fPTRR/roo49Up04dPfvssyWYtuRF1K2v7N9LWc6WXwNOAwAAULy899K+tKBjFF1s5RIpD0888YQ6deqkypUr56+lpqbqnnvu0Ycffqjp06fr2muvzZ999dVXSkhIUHx8vCZPnqxzzz03f5aZmal58+bl305LS9O9996rffv26YknntAtt9ySP3vhhReUkJCgf/zjH5o/f/4B/xb/4IMP1KlTJ73yyiv52b799lt169ZNTz/9tC699FK1adOm2H89ihOlrAi890Wen3LKKZo6depRf83Ro0cfcp6SknLYXCXFVame/9+pyeu0d+vWQHKgaPJ+qriV/QoL7Ff4Yc/CD3sWfopzz7z3cs4pOzv7gCLj96bK9bn+mL9GabNj35CJiy+Wx9r/ghidO3c+YK1SpUpKSEjQhx9+qPfff19du3bNn40bN07ee/Xv31/nnntugftZa/XHP/4xf23mzJnaunWrOnbsqBtuuKHAsXfeeaemT5+uJUuWaNasWbrqqqskSTk5OZJyz3wNGTJEMTEx+fc79dRTdeutt+rZZ5/VxIkT9cQTT+Q/Xt6/nY/0Yh95v0e2bt160LJrjFH9+vWP6PEKQykrgtjYWElSRkZGofO89f2vyliu1T4u/z99ym8BBgEAAEBpWLdunT755BNt2LBBe/fulXMuv+SsX78+/7icnBx9+eWXkqSbbrrpsI+7YMECSdJf//rXQuddu3bVkiVLtGDBgvxSlqdNmzaFvt/sqquu0rPPPquFCxce2TcXIEpZEeS9f2vbtm2Fzrdv317guPLO1K6r/HN027YEGQUAAAAlyHuvIUOG6KWXXjroq7RSU1Pz/3v79u1KT09X7dq1FR9/+LN2v/2W+wP+Ro0aFTrPW887bn8Hu07Doe5T1lDKiqBx48aSCv4UYH/r1q0rcFy5t9+ZMqX8Ju89b5AFAADlR2xl2bFvBJ2i6GIrH/6YInr33Xf14osvqn79+kpKSlKHDh1Uq1YtRUVFKTMzU02aNCm0rBX134aHO768/luTUlYELVu2VFxcnH777TetX7/+gEvj5512bd++fRDxSl+t/UpZZoaUuluqUi24PAAAAMXIGCMV03uzwt37778vSRo5cqT+/Oc/F5ht3LjxgONr1qypSpUqaevWrUpNTT3s2bLjjjvuoI8lSZs2bZIk1a1b96Czg63nPXZZxodHF0FkZKQuvfRSSdLEiRMLXGVx1qxZSk5OVsuWLcvch9GVmLjKMnH7/SQmhZcwAgAAlEe7du2SJB1//PEHzP7zn/8csBYREZF/tcXXX3/9sI/fsWNHSdKMGTMKneet5x23vx9//FFr1649YP3f//63JOnMM8887NcPWoUuZYsXL9bAgQPz/yflXoVl/7XFixcXuE/Xrl118skna+XKlerTp4/GjBmjgQMHavLkyapSpYruvffeIL6VQBhjFFE39MTkYh8AAADl00knnSRJmjJlSoGXKS5YsEDPP/98ofe59957ZYzR6NGjNX/+/AKzrKwsffbZZ/m3r7jiCtWpU0cLFiw4oMS9/PLL+u6771S/fv38EyT7c85p8ODB2rdvX/7akiVLNGnSJFlrdeONNxb5+y1tFfrli7t379bq1asLrHnvC6zt3r27wDw6OloJCQmaMWOGvvjiCy1cuFCVK1dWp06d1KNHjwpzkY88EXXrK3vD779e2yhlAAAA5cX+79+6/fbbNXXqVL366qv66quv1KpVK23evFlff/217r77br3wwgsH3P+cc87RY489pqFDh+qqq67S6aefrsaNGyslJUXLli1TXFxc/tt/4uLiNH78eN1666166KGHNGXKFJ100klas2aNli5dqri4OD377LOFfl7wxRdfrOXLl+vcc89Vx44dtWfPHs2bN09ZWVnq06ePTjvttJL7RSomFbqUXXDBBbrggguKfL/o6Gj16NGjwCeQV1QRdeuFbnAFRgAAgLCX9xaduLi4/LWmTZtq9uzZGj58uL799lt98MEHatq0qR5//HHdcMMNhZYySbrnnnvUvn17/fOf/9TChQu1dOlS1apVS6eddpq6d+9e4Ng//vGPmj17tsaNG6d58+Zp+fLlqlmzprp27ao+ffoc9C1CNWrU0Lvvvqvhw4dr7ty5Sk1N1cknn6w777wzbP69XqFLGY5dxHG8fBEAAKA8ybvYRoMGDQqsn3zyyZo0aVKh9/n5558P+njnnnvuAR8efTAtWrTQs88+e0Q5zz333AJfd/z48Ud0v7yzc2VJhX5PGY5dRN39PrmcC30AAACENe+9XnnlFUm5Lz9E6eBMGY5JgVK2bQufVQYAABCGtm/frsGDB2vFihVavny54uPjdffddwcdq8LgTBmOSYFSlpUp7d4ZWBYAAAAcnbS0NM2cOVO//vqr/vznP+udd95R48aNg45VYXCmDMfEVo6Xia8in7ondyHlN6lajWBDAQAAoEgaNWp00A9hRsnjTBmO2f5nyzxXYAQAAACKhFKGY7b/B0hr6+bgggAAAABhiFKGYxbZoFH+f/sNawJMAgAAAIQfShmOWXSrdqEbq3+Udy6wLAAA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gnO0eybxPAvSjBkzlJ6ersaNG+uEE06QJP3000/6/PPP9eWXX+qBBx7Q6aefXuA+PM+KhlKGIpsxY4ZWrlyp5s2b67HHHssvALNmzdLkyZP1/PPPKykpKeCUFddNN92kunXrHva4pUuX6r333lOVKlU0bNgw1a9fX5K0atUqJSYm6rnnnlPr1q0VHx9f0pHLtebNm+vEE09U06ZN1bRpU911112HPP5o9iU1NVXPPfecnHPq37+/OnbsKEnauXOnBg8erPfee08dOnRQmzZtSu4bLSeKul95LrrooiP+KS77VXwiIyPVuXNnXX755fnPFUnasWOHRo0apfXr12vSpEnq06dP/oznWLCOZs/y8DwLzgMPPKCTTjpJ0dHRBdY/+OAD/etf/9ILL7yg559/XtbmvjOK51nR8Z4yFEl2drbmzJkjSbrjjjsKnJHp0qWLGjdurOXLl2vdunVBRcQR+s9//iNJ6tq1a4G/GJs3b64///nP2rt3rz799NOg4pUbV199ta699lp16NBB1atXP+zxR7Mvn3zyifbu3aszzjgj/y8xSapevbpuvPFGSbk/NMHhFXW/jgb7VXw6deqkO++8s8BzRZJq1KihO+64Q1LuT96zs7PzZzzHgnU0e3Y02LPi1bJlywMKmSR17txZ9erV044dO/TLL7/kr/M8KzpKGYpkxYoVSktL03HHHacmTZocMM97Eh3Ny39QejIzM7V06VJJ0tlnn33APG/tm2++KdVcFd3R7kve7cLu0759e0VFRemHH35QZmZmcUfGUWC/Skfjxo0lSVlZWdqzZ48knmNlXWF7drTYs9KTd3YsMjL3BXg8z44OL19EkSQnJ0tSoYVMCr2uO+84lL5PPvlEqampMsaofv36Ouuss1S7du0Cx/zyyy/KyspS1apVC70wS97+so+l62j3ZePGjZIKf19FZGSkTjjhBK1du1a//PKLTjzxxOIPDi1dulQbNmxQZmamatWqpdNPP/2g73Nhv0rHb7/9JkmKiIjIf4kUz7GyrbA92x/Ps7Jn7ty5+uWXX1S/fv38t07wPDs6lDIUSUpKiiQd9AqLeReTyDsOpe+dd94pcPu1115Tt27d1L179/y1w+1jpUqVVLlyZaWlpWnfvn2KjY0tucDIdzT7snfvXqWlpUkq/GIueetr165VSkpKufyLrCz4/PPPC9x+6623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EKUMAAAAAAJEKQMAAACAAFHKAAAAACBAlDIAAAAACBClDAAAAAACRCkDAAAAgABRygAAAAAgQJQyAAAAAAgQpQwAAAAAAhQZdAAAAMLR1KlTNW3atPz/zrNlyxZ99tlnkqRrr702iGgAgDDDmTIAAIrR1q1bNW3atPzCBgDA4VDKAAAAACBAlDIAAAAACBDvKQMAoJj07NlTW7duzb/9v+8p69Spk3r27FlgLTMzUx999JEWLFigTZs2ae/evYqPj9fJJ5+szp07q127doV+rbzHTkhIUMOGDTVz5kwtXrxY27ZtU2ZmZoH3uQEAyjZKGQAAxaRq1arau3ev0tLSJEnVqlUrMI+Liytw+9dff9WoUaP066+/SpKMMYqNjdWuXbu0aNEiLVq0SJ07d9add9550K+5efNmPfPMM9q1a5eioqIUGclf7QAQbviTGwCAYjJy5Ej9+OOPSkpKkiS99NJLBz02LS1Nw4YN09atW9WmTRtdc801atasmaKiorR371598sknmjp1qj744AMdf/zxuuyyywp9nFdffVU1a9ZUnz591Lp1a1lr9csvv5TI9wcAKBm8pwwAgAC88847+YVs4MCBatWqlaKioiTlnlHr0qWLevXqJUmaPn26cnJyCn0cY4wGDRqkNm3ayNrcv9aPP/740vkmAADFglIGAEAp897r008/lSR16dJFERERhR535plnKjY2Vnv27NG6desKPeb8889XrVq1SiwrAKDk8fJFAABK2aZNm5SamipJeu6552SMOeix6enpknI//+zkk08+YN6iRYuSCQkAKDWUMgAAStmOHTvy/3v37t1HdJ/MzMxC1//3YiIAgPBDKQMAoJQ55/L/+8UXX1T16tWP+rHy3kcGAAhf/EkOAEAp27+Ebdy4MbggAIAygVIGAEAx2v/9Yd77Qo9p1KiRYmNjJUlffvllqeQCAJRdlDIAAIrR/h8Qnfch0v8rIiJCF154oSRp7ty5WrFixSEfM++iIACA8olSBgBAMapfv74iI3Pfsv3JJ58c9GxZ9+7dddxxxyknJ0fDhw/XrFmzClz0Y+/evfruu+80YcIEDR48uFSyAwCCwYU+AAAoRjExMTr//PP1ySef6PXXX9fbb7+tKlWqyBijjh076uabb5YkxcfHa9CgQXryySeVnJysyZMna/LkyapcubKcc9q3b1/+Y9arVy+obwcAUAooZQAAFLM77rhDtWrV0vz587VlyxalpKRIkvbs2VPguLp162rUqFGaN2+evvzyS61fv167d++WtVZ169bViSeeqA4dOqhDhw5BfBsAgFJi/MFeVwEAAAAAKHG8pwwAAAAAAkQpAwAAAIAAUcoAAAAAIECUMgAAAAAIEKUMAAAAAAJEKQMAAACAAFHKAAAAACBAlDIAAAAACBClDAAAAAACRCkDAAAAgABRygAAAAAgQJQyAAAAAAgQpQwAAAAAAkQpAwAAAIAAUcoAAAAAIECUMgAAAAAIEKUMAAAAAAJEKQMAAACAAFHKAAAAgP+/UTAKBhAAAFzJv2BmqcibAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.semilogy(hist_jacobi)\n", "plt.legend(['Jacobi'])\n", "plt.xlabel('Iter')\n", "plt.ylabel('Error')" ] }, { "cell_type": "markdown", "id": "67d73532", "metadata": {}, "source": [ "### Gauss-Seidel\n", "Jacobi Method를 생각하면, (n+1) step에서 i번째 값을 구할 때 i-1번째 값의 (n+1) 번째 값을 알 수 있다.\n", "\n", "즉 위 식을 다음과 같이 생각할 수 있다.\n", "\n", "$$\n", "T^{(n+1)}_i = \\frac{1}{2.04} (T^{(n-1)}_{i-1} + T^{(n)}_{i+1} + b_i)\n", "$$\n", "\n", "행렬 식으로 생각하면 $A=L+D+U$ 라 생각했을 때 $A_1 = L + D$인 방법이다.\n", "\n", "구현하는 과정은 loop를 하나로 합친다.\n", "- i 번째 값에 대해 $T^{(n+1)}_i$ 최신화 함\n", "- i 번째 값에 대해 $\\Delta T^{(n)}_i$ 를 구함" ] }, { "cell_type": "code", "execution_count": 9, "id": "54a7e04c", "metadata": {}, "outputs": [], "source": [ "def gauss_seidel(n, t, b, dt):\n", " \"\"\"\n", " Jacobi method\n", " \n", " Parameters\n", " ----------\n", " n : integer\n", " size\n", " t : array\n", " current solution\n", " b : array\n", " forcing term\n", " dt : array\n", " difference\n", " \"\"\"\n", " for i in range(1, n+1):\n", " ti = t[i]\n", " t[i] = (t[i-1] + t[i+1] + b[i-1])/2.04\n", " dt[i] = t[i] - ti" ] }, { "cell_type": "code", "execution_count": 10, "id": "8424c380", "metadata": {}, "outputs": [], "source": [ "n = 10\n", "tol = 1e-8\n", "\n", "# 양 끝점을 포함해서 행렬 만듬\n", "t = np.zeros(n+2)\n", "dt = np.empty_like(t)\n", "\n", "# Forcing term\n", "b = np.ones(n)*0.8\n", "b[0] += 40\n", "b[-1] += 200\n", "\n", "err = 1\n", "hist_gs = []\n", "while err > tol:\n", " # Run Jacobi\n", " gauss_seidel(n, t, b, dt)\n", " \n", " # Compute Error\n", " err = np.linalg.norm(dt) / n\n", " hist_gs.append(err)" ] }, { "cell_type": "code", "execution_count": 11, "id": "b7e2c4fb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 44.42707497 49.83123296 56.42864031 64.48319331 74.31707408\n", " 86.32363785 100.98314716 118.88198239 140.73609693 167.41965536]\n" ] } ], "source": [ "# Solution\n", "print(t[1:-1])" ] }, { "cell_type": "code", "execution_count": 12, "id": "6e3774bb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Error')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2UAAAKLCAYAAAB2TyAVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAABcSAAAXEgFnn9JSAACr+0lEQVR4nOzdd3RURf8G8GfubnpPSKeH3ntoiv6woGKjiCIqr6govasvJQFEQHpTRMWKBUEUERFRQEnovfeeBNJ7stnc+f0R2CUvoYRkc7c8n3M4h5m5u/sklw357tyZK6SUEkRERERERKQJResAREREREREjoxFGRERERERkYZYlBEREREREWmIRRkREREREZGGWJQRERERERFpiEUZERERERGRhliUERERERERaYhFGRERERERkYZYlBEREREREWmIRRkREREREZGGWJQRERERERFpiEUZERERERGRhliUERERERERaYhFGRERERERkYZYlBEREREREWlIr3UAKpuEhARIKTV7/UqVKgEAkpKSNMtApcNzZlt4vmwPz5nt4TmzPTxntsURzpcQAiEhIff8eBZlNk5KqWlRdmMOsi08Z7aF58v28JzZHp4z28NzZlt4vm6Nly8SERERERFpiEUZERERERGRhliUERERERERaYhFGRERERERkYZYlBEREREREWmIRRkREREREZGGuCU+ERERkQOxh23Jr38N9vC1OAJbPF9CiAp9PRZlRERERHbOaDQiNzcXBoPBpn4xvpXU1FQAgKqqGiehu2Gr50uv18PZ2Rlubm4WL9JYlBERERHZMaPRiPT0dLi6usLX1xeKYvurV/T6ol9hjUajxknobtji+ZJSoqCgAHl5ecjPz4ePj49F3zssyoiIiIjsWG5uLlxdXeHh4aF1lHJzfdaioi8xo3tji+dLCAEXFxc4OzsjKysLubm5Fn0P2f5HJURERER0SwaDAa6urlrHILJJQgi4ubkhLy/Poq/DooyIiIjITkkpIaW0i0sWibSi0+lM7yVL4TuUiIiIiIhIQ1xTZmFHjhzBmjVrcO7cOSQlJaFHjx547rnntI5FRERERERWgjNlFpaXl4fKlSujT58+8PX11ToOERERERFZGYeeKTtz5gwOHDiAU6dO4eTJk0hNTYWTkxOWLVt228cZDAb8/PPPiImJQVJSEjw9PdG0aVP06tUL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ERGoW7cuunfvjnXr1pV4/O3WlH3zzTfo3LkzatasiZYtW2LcuHF3XMd28eJFjBkzBpGRkahRowYaN26M119/HUeOHCn116IVFmVUruq2bgbfa1vjq0LBjtOJGiciIiIiMtu4cSMA4IknnoCilP5X4VGjRmHNmjXw8vLCAw88gMjISMTHx2P69Ol46aWXUFhY9g+kN2zYgKeffhp//vknqlSpgsceewwNGzZESkoKFi5ciJSUFNOxX331FV588UVs27YNtWvXxuOPP446derg4sWLmDVr1l2/ZmhoKABgy5YtOHPmzF0/LjExEV27dsXMmTORlpaG+++/H82bN8eBAwfQr18/LFy48K6fa9KkSXj77bdx9uxZdOjQAS1atMCqVavQs2fPEgteANixYwcefvhhLFu2DB4eHnj44YdRo0YN/P7773jyyScRExNz16+vJV7MSeVKadAUkX99jz8CixaAbj0ah4cahGicioiIiKjI9dmTRo0a3dPjp02bhvvvvx/u7u6mvqysLAwcOBAbNmzATz/9hJ49e5Yp4+LFiyGlxG+//XbTTN3evXvh5+dnai9atAheXl6mAu46KSViY2Pv+jUfffRRBAQEIDk5GQ8//DA6d+6M9u3bo2XLlmjQoAF0Ol2JjxsxYgROnDiBAQMGYMyYMXByKtrk7fz58+jduzc++OADPPzww2jYsOFtX3/nzp34+OOP4evri59++gl169YFULSW7bnnnsOePXtuekxmZib69++PvLw8fPzxx+jatatp7J9//sErr7yCIUOGYOvWrXB2dr7r74UWWJRRuRI6HdoFO+OPa7vH7sl1RWJ2AQI9uAsjERGRNZFSIrvA9rZ793Aq24Ve12eZ/P39Sxwvaav0l19+GS1atAAAdOnS5aZxT09PREdHY8OGDVi/fn2Zi7KkpCR4e3vfVJABQPPmzW86tmbNmsUKMgAQQqBDhw53/Zre3t5YtmwZBg4ciNOnT+O3337Db7/9Zhp76qmnMHz4cISEmD9sP3ToEP7++2+0atUK//3vf4utQ6tWrRomTJiAV199FcuWLcP7779/29f/+uuiPbz79+9vKsiAovM0fvx49O7d+6bHfP/997h69SoGDRpUrCADgPvvvx8vv/wyPv30U2zYsAGPP/74XX8vtMCijMpd43bNELzhKq64BUAVCn7fcRovP1hP61hERER0g+wCFS/+eFLrGKW2rGdt+Jbhs14pJQDctJHFdT/++ONNfQ8++KCpKAOAM2fO4O+//8a5c+eQk5MDVVVNz3v27Nl7D3dN48aN8dNPP2HkyJF4/fXXUa/erX+PatKkCXbs2IH3338fvXv3LtMGGo0bN8bGjRuxadMmbNy4EXv27MGRI0eQkZGBb775BuvWrcPKlStNm338+++/AIpm2Ur6frZu3RpA0b3P7mTnzp0AgCeffPKmsU6dOsHX1xdpaWnF+v/55x8AJRfKANCmTRt8+umn2L9/P4sycjz66rXxWP5WfHFta/w/LuWjl1GFi55LGImIiEhb/v7+OH36dLF1WTe6fPmy6e/Dhg0rVqRJKTFp0iR88sknpiLsf2VlZZU54zvvvINjx47h+++/x/fffw9/f3+0atUKXbp0wTPPPAMXFxfTsVOmTEG/fv2waNEiLFq0CCEhIWjTpg2eeOIJPP7446Z1czt27MC3335702tNmDCh2KyhTqdD586d0blzZwBFlwj++uuveP/995GUlIRx48bh+++/BwDTjZynTJmCKVOm3PLrudX3+kZXrlyBEAJhYWEljoeHh99UlF26dAkAbpolu5fX1xqLMrKIh9rVw3eHDMjXOSNLccHm/efxSMsaWsciIiIiB9egQQPs3LkTBw8exLPPPluqx65evRpLlixBaGgoJk6ciJYtWyIgIABOTk4wGAyoUaPGLYu1W1HVmy8hDQ8Px++//46YmBhs2LABW7duxZ9//on169fjww8/xC+//AJfX1/T13N9duvvv//G1q1bsXr1aqxevRpt2rTBDz/8AGdnZ5w9e7bEWcCRI0fe8lJOAPDy8kLv3r0RGBiIvn37IjY2Frm5uXBzczNtahIZGYmqVave8jkqVapUqu/J3br++l27doWbm9stj/vfSz6tEYsysgjPZq3wQOwK/OFXdC30r0eT8FCL6lBucakAERERVSwPJwXLetbWOkaplXVN2YMPPogvv/wSv/32G8aNG1eqHRh///13AMDUqVPx8MMPFxu7cOFCiY+5vvFFTk7OTWOFhYVITCx5p2q9Xo9OnTqhU6dOAIpm8IYPH46YmBgsWrQIY8eONR3r6uqKLl26mC7ju77xxo4dO/Ddd9/hlVdeQa9evdCrV6+7/lr/V/v27U2Z09PT4ebmZtqx8YknnkC/fv1u+di7uVF0UFAQLl68iLi4ONSocfMH+TfOYF4XGhqK06dPY+jQoWjQoMHdfilWideTkUUIRcETjYJN7QvCC7EHS/5hRURERBVPCAFPZ53N/bnVWrC71blzZ9SuXRuXLl3CokWLSvXY9PR0ACjxErtff/21xMcEBxf9PlTSNvMxMTEoKCi4q9cODw/HwIEDAQDHjh277bF16tRB37597+rY6+40w3fu3DkAgLOzs2lm7b777gOAW96PrDSurz9bs2bNTWP//PPPTZcu3vj6f/zxR5lfX2ssyshiqnZsj7bpJ0ztb/ZdhVEt3ZQ+ERERUXlSFAXz58+Hi4sLpk+fjqlTp5a4DuzSpUs3FVI1a9YEACxbtqxYEbN9+3Z89NFHJb5e27ZtAQA//fSTaQ0WULRl/Lhx40p8zJIlS0qcQbt+j7XrRWFubi4+++wzU7F4naqq2Lx5MwCUeGPqknz55ZcYM2ZMiUVcQkIC3nnnHQBFRe317eVbtmyJjh07IjY2FlFRUTfd1Pp6ju3bt9/x9V966SUARV/7yZPmDWhSU1Px3nvvlfiYPn36ICAgAAsWLMAPP/xwU2GZk5ODH3/8EXFxcXd8fa0JWdoLX8mqxMfHl/ra5fIUGBgIALecej+/JQbDzvlBFUX1/1vVjOjS8d7uC0Ll407njKwLz5ft4TmzPfZ8zqSUSE5ORkBAQJlnmKzJ9cvhjEbjPT/Hjh078MYbbyAxMRGurq5o1qwZgoODkZeXh/j4eBw6dAiqqqJu3bpYsmQJatWqhdOnT6NLly7IyclBnTp1UL9+fSQkJGDHjh3o378/Fi9ejMqVK99UhAwdOhQrVqyAt7c3IiMjkZOTgz179qBz587Yt28fLl26VOzyvPr16yMrKwsNGjQwrVM7evQoTp8+DX9/f/z666+oXr060tPT0aBBAzg7O6NRo0aoUqUKCgoKsH//fly+fBnVqlXD2rVrTevPbueTTz5BdHQ0AKBq1aqoV68e3NzckJCQgL1798JgMKBq1apYsWJFsUIvMTERL7zwAo4ePQpfX180bNgQAQEBSEhIwOnTp5GcnIxJkyahf//+pvMVHh5e4vcpKioKn376KVxcXNCxY0e4uroiJiYG4eHhcHFxwZ49e7Bt27Zi2//v3LkTffv2RVpaGipXroy6devCxcUFly9fxsmTJ5GTk4M//vjDdF+62NhY9OzZEz179sTcuXPv6t/K3byPhBCmyznvBdeUkUVV7dAeDx5ejb88i+438cPpfHRqUwA3Z963jIiIiLTTpk0bxMbGYtmyZfjzzz9x/Phx7N69G87OzggNDcWzzz6Lrl27onPnzqYbJ0dERGDt2rWYMmUK9u7di/Xr1yMiIgLTp0/Hiy++iMWLF5f4WjNmzEBISAh++uknbN68GWFhYRg8eDAGDRpkWqt1o8mTJ2PTpk04cOBAsdmxN998E2+88YbpkkgPDw9MmTIFMTExOHLkCI4ePQpnZ2eEh4ejd+/e+M9//gMfH5+7+n48//zzCA0NNb3u7t27kZ6eDk9PTzRu3BiPPPII+vbtC09Pz2KPCwwMxK+//oqvv/4aq1evxv79+1FQUICgoCA0atQIjzzyyF1vqBIdHY2IiAh88cUX+Pfff+Hn54cnn3wS77777i3XrLVu3Rp//fUXlixZgr/++gsxMTHQ6XQIDg7GQw89hMceewx16tS5q9fXEmfKbJy1z5QBwNUjxzBgdwEKlKJC7Fn3FPR99uYfQFQx7PkTYXvE82V7eM5sjz2fM86UkTWw9fNVETNlXFNGFhfUoB6eKjxvaq/O8sG5M5c0TEREREREZD1YlFGFeO7pjgjKTwMAFCo6LN502nRvCSIiIiIiR8aijCqEq58v3qhpnu496hKMdb/+o2EiIiIiIiLrwKKMKkzrByLRtsC8s9CXGQGIO3RUw0RERERERNpjUUYV6s2uLeBtLLqjfb7OGXNjL8OYmX6HRxERERER2S8WZVSh/Cr54c36bqb2cY/K+HHZOkgb3Y2HiIiIiKisWJRRhevQpj46uaSZ2ss9G2P/9z9qurU/EREREZFWWJSRJt54shVC1GwAgCoUzCmoheT1v2mcioiIiIio4rEoI014uugx5pHacJJFly2mOXth1ikFBds2a5yMiIjIfgghIISAqqpaRyGyWYWFhab3kqWwKCPNRAR747Umfqb2Ed+a+HbjEciDuzVMRUREZF+cnZ2Rl5endQwimySlRG5uLlxdXS36OnqLPjvRHTzaOAxHEk9jc0LRjNlPVR9Eve++QhtIiMatNE5HRERk+9zc3JCeXrTTsYuLC3Q6ncaJyu76OnSuR7cNtni+pJQoKChAXl4eVFWFj4+PRV+PRRlpSgiBt+6vidO/nsCl3KK+eXV64IPPPkT4K69BNG+rbUAiIiIbp9fr4ePjg9zcXKSnp9vUL8a3oihFF3vxskzbYKvnS6/Xw9nZGW5ubha9dBFgUUZWwM1Jwduda2DU2jPIVwWyndwxrUEfTPtkDjxeHQzRqqPWEYmIiGyaXq+Hl5cXANuarbiVwMBAAEBiYqLGSehu2OL5snQR9r9YlJFVqOrjgiHtwzFjSxwA4KJHCBbU6YHRS2ZCMRqhtH1A24BERER2oqJ/2bSE61+DPXwtjoDn68640QdZjY7VvNGtgb+pvS2wMVZWeQBy6Ryo63+2i0/2iIiIiIj+F4sysip9mgaieaiHqf1djUewy68u5I9LIb/7GLKwUMN0RERERETlj0UZWRWdIjCqQxhCPJ0AAFIomNvgBVx2C4TcuBbqh+9D5uVqnJKIiIiIqPywKCOr4+miw387VYarvui64xy9G6Y1ehk5OhfgwE6oM96FTE3WOCURERERUflgUUZWqZqvC4a1CzO1L3sEY379XlAhgAtnoL43HPLEYQ0TEhERERGVDxZlZLXaVfXCc40CTO0dlRrhx2qdixoZaVBnj4P61xpuAEJERERENo1FGVm1F5pUQqsw88YfP9R4BDuCGhc1Cgshv18C+flcSEO+RgmJiIiIiMqGRRlZNUUIDO8QhjAvZ1PfvMYv4VJwHVNbbt0IdeoYyITLWkQkIiIiIioTFmVk9Tyddfhvp3C46Yv+ueYWAtNa9Ud2nWbmgy6dhfrecKjbNmmSkYiIiIjoXrEoI5tQxccFwzuEmtpx2YWY1/I1yP970nxQfh7kZ7OhfrkAMp+XMxIRERGRbWBRRjYjsrIXXmhcydTeFZ+DHxo8A+WtdwF387ozueVPqFNGQF6+oEVMIiIiIqJSYVFGNuW5xgGIrOxpai8/lIytlRpCGT8XqGFeZ4b4i1DfHwF1y5/cnZGIiIiIrBqLMrIpihAY1j4Ulb1v2Phjazwu6H2hjJkG8eiz5oMNBsgvF0AumQGZnalBWiIiIiKiO2NRRjbH3UmH/3aqDHenon++eUaJqf9cQo4qoPT4D5QhEwBPL9PxctcWqNFDII/u1yoyEREREdEtsSgjmxTu7YyRHcIgrrXjMwuwYFsCpJQQjVtBGT8PqNvY/IC0ZKhzJkD98XPIggJNMhMRERERlYRFGdmsVuGeeP6GjT+2XszEmuOpAADhXwnKiMkQPfoCOn3RAVJCrl8FdeooyDhuAkJERERE1oFFGdm0no0C0CzE3dT+fM9VHE/KBQAIRYHyaDco/50BhFYxP+jiWajvjYD69xpuAkJEREREmmNRRjZNpwgM7xAGf7ei2bBCCXzw72Vk5BeajhFVI6CMnQ3x4OPmBxYYIL9bAnX+JMj01IqOTURERERkwqKMbJ6vqx6jO4ZBubbALCnHiLmxcVBvmAUTLi5Qer8JZfB4wMvH/OBDu6FGD4bcHVvBqYmIiIiIirAoI7vQIMgdLzcLNLV3x2VjxeHkm44TTVpDiV4ANG5l7szKgLp4GtTP5kDmZFVAWiIiIiIiMxZlZDeeqe9f7MbS3x1IwoGE7JuOE96+UAaPh3jxTcDZxdQvt20s2jr/yL6KiEtEREREBIBFGdkRIQSGtAtFsKcTAECVwKyYOKTkGks8VnngcSgT5gE165oHUpOKts7/bglkfn5FRSciIiIiB8aijOyKp7MOYzqGQ39tgVlaXiFmbrmMQrXkXRZFcBiUMdMgnn3JvHU+APn3GqiTh0GeOV4huYmIiIjIcbEoI7tTK8AVr7UMMrUPX83Fsv2Jtzxe6HRQHu8J5b8zgfBq5oErl6FOexvqz99AGnnDaSIiIiKyDBZlZJe61PbF/dW9Te2VR1Kw6/LtN/EQVWsWbZ3/aDdAXNvKUaqQvy2HOnU05GXecJqIiIiIyh+LMrJLQggMaBOCyt7Opr65sXFIyrn9jJdwcoLSoy+U0VOBSsHmgQtnoL43HOr6VZBq4a2fgIiIiIiolFiUkd1yc1Lw9n3hcNYVzXplGlTM2hJ3y/VlNxK1G0CJmgdx/6PmTmMB5I+fQ501DjIxwVKxiYiIiMjBsCgju1bV1wX9W5tnvI4k5uL7g0l39Vjh6g7lpYFQhkwAfPzNAycOQ504FOq/6yHlnQs8IiIiIqLbYVFGdq9zTR90umF92Y+HkrEv/ub7l92KaNwKSvR8iFYdzZ35uZBfLYS68D3I9NRyTEtEREREjoZFGdk9IQTebBOMMK+i+5dJAHNi45Bawv3Lbvkcnt5Q+o+BeH0U4G6+QTUO7IQaPQhyd0w5pyYiIiIiR8GijByCu5MOozuGw+mG+5fNjr279WU3UtrcDyV6AdCwubkzKxPq4ulQP50FmX37HR6JiIiIiP4XizJyGDX9XfHqDfcvO5CQg5VHkkv9PMIvAMrQaIgX3wKcXUz9cvvmolmzQ7vLJS8REREROQYWZeRQHqvti3ZVvEzt7w4k4fDVnFI/jxACygOPQYmaB0TUMw+kpUCdNxHq14sg80r/vERERETkeFiUkUMRQmBQ2xAEeRStL1MlMGtLHDLy7n59WbHnCwqDMmYqRI++gF5v6pf//AE1egjk8UPlEZuIiIiI7BiLMnI4ns46jO4Yhmu3L0NyrhHztsbf8/b2QtFBebQblHFzgKo1zQPJV6HOGgv1h88gDfnlkJyIiIiI7BGLMnJIdSq54eXmgab2rrhsrD5Wtq3tRXg1KO/OgOj6PKBce2tJCbnhF6iTh0OePVmm5yciIiIi+8SijBzWU/X80SrMw9T+cu9VnEjKLdNzCr0TlKd7Q3l3BhBaxTyQcAnqtNFQf/4G0lhQptcgIiIiIvvCoowcliIEhrYLRYBb0VqwQgnM2BKHLENhmZ9bVK8NZdxsiEeeAcS16yRVFfK35VDfHwV56VyZX4OIiIiI7AOLMnJo3q56jOwYhmu3L8PV7AIs2p5wz+vLbiScXaD0fBXKqPeBwBDzwMWzUN8bAfX3FZBq2QtAIiIiIrJtLMrI4TUMcscLTSqZ2rEXMrHuZFq5Pb+o0xDKhHkQnbqYOwuNkD99BXX6O5AJl8vttYiIiIjI9rAoIwLQvUEAmoa4m9qf7b6KMyl55fb8wtUNSp8BUIZGA74B5oEzx6FOHgr1rzWQqlpur0dEREREtoNFGREAnSIwvH0YfFx1AIACVWLGljjkFJTv5YWiUQso0Qsg2j5o7jQYIL9fAnXOBMjkq+X6ekRERERk/ViUEV3j56bHiPZhuLa8DHGZBizecaVc1pfdSHh4Quk3HMpb7wBePuaBYwegRg+GGrOh3F+TiIiIiKwXizKiGzQL9UCPhubLCzefy8BfZ9It8lqiRXso0QuA5m3NnXm5kF/Mh7rwPci0FIu8LhERERFZFxZlRP/jhSaV0CDQzdResvMKLqTnW+S1hLcvlLfeheg3HHAz3zMNB3YWzZrt3GKR1yUiIiIi68GijOh/6BSBkR3D4OVStL4sv1Bixr+XkW+0zEYcQggobR+EEr0AaNjcPJCdCbnkA6hLZkBmZVjktYmIiIhIeyzKiEpQyd0Jw9qFmtoX0g34bLdlN+EQ/pWgDI2G6DMAcHE19cud/0KNHgx5YKdFX5+IiIiItMGijOgWWoV74ul6fqb2H6fSEHPesjNWQggonbpAiZoP1G5gHkhPhbpgMtQv5kPm5lg0AxERERFVLBZlFnbkyBF88MEHGDBgAJ577jksX75c60hUCi81C0KEv3nWatH2BFzJMlj8dUVgCJRRUyB6vgronUz9MmZD0azZ0f0Wz0BEREREFYNFmYXl5eWhcuXK6NOnD3x9fbWOQ6XkpBMY3TEMbvqit0p2gYqZW+JgVC2/Zb1QdFAeeQbKhLlAtVrmgZREqLPHQ/1uCWS+ZTYgISIiIqKKo9c6QHk6c+YMDhw4gFOnTuHkyZNITU2Fk5MTli1bdtvHGQwG/Pzzz4iJiUFSUhI8PT3RtGlT9OrVCwEBAbd97J20aNECLVq0AIA75iDrFOrljAGRIZgVEwcAOJGch2X7E/FK86AKeX0RWgXKOx9ArlsBueYHoLDohtby7zWQh/ZAeXUYRES9CslCREREROXPrmbKVqxYgW+//RY7duxAamrqXT3GYDBg8uTJWLFiBfLy8tCqVSsEBARg06ZNePvtt5GQkGDh1GQL7q/ujYcizDd6/ulICvbGZ1fY6wu9HkrX56G8OxMIq2oeuBoHdfo7UH/6ErKgoMLyEBEREVH5sauZsjp16qB69eqIiIhAREQE3njjjTs+ZtWqVTh+/Djq1KmDcePGwdW1aP3QmjVr8NVXX+Gjjz7CxIkTTcdnZWUhKyvrts/p5uYGHx+f2x5Dtuf1VsE4lpiLSxlFa8rmxMZh3uM14OdWcW8jUS0Cyrg5kL8sg1y/CpASkCrk7yshD+6G8upwiCo1KiwPEREREZWdXRVlzzzzTKmONxqNWLduHQCgX79+poIMALp27YrNmzfj6NGjOHPmDGrWrAkAWLt2LVasWHHb5+3UqRMGDhxYuvBk9Vz1CkZ3DMOodedRoEqk5xViTmwcov+vChQhKiyHcHKC6NEXslkk1M/nAlfjiwYunYM6ZSTEk89DdOkOodNVWCYiIiIiund2VZSV1rFjx5CdnY3g4GDUqHHz7EJkZCTOnz+PXbt2mYqyHj16oHv37rd9XlGBv6BTxaru54p+LYOweOcVAMD+hBz8dCQFPRqWbe3hvRC16kOZMA9y5ZeQG38r6iw0Qv78DeS+7UWzZqGVKzwXEREREZWOXa0pK63z588DQIkFGQBTIXb9OABQFAU6ne62fxTFob+tdq9LbV+0q+Jpai/bn4hjibmaZBEurlB694cyfBLgX8k8cO4k1MnDoG74BVJVNclGRERERHfHoWfKkpKSAOCWOyz6+/sXO+5e5OXlmTYLMRqNSEtLw7lz56DX61G58p1nMUaMGHFTn7OzM6ZNmwYAqFSp0k3jFUmvL/onFBgYqGmOihb1hB9eWbYXVzLzoUpgztYEfPFic3i7Ot35wZbQ6WGordohc+lc5P51bdaswAD5w2fQH9oDnyHjoA8OA+C458xW8XzZHp4z28NzZnt4zmwLz9edOfSUTl5eHgDAxcWlxPHra8yuH3cvTp8+jTFjxmDMmDFITU3Fhg0bMGbMGEydOvWen5O05+3qhEmP1YPu2pWqCZn5mLbhJKS0/P3LbkXx8ITP4HHw/e8HUHz9Tf0Fh/cieehLyFn/i6b5iIiIiKhkDj1TdqdfUMvjF9iGDRti+fLl9/z42bNn33Y8KSlJ01+0r3/ikZiYqFkGrYQ4Ab2bBOLr/UVf+6ZTyfg69iQeq+OnbbAa9YAJ84FlHwK7YwEAMi8HGR9OQ8Y/fyJwRBR0/oEOec5skSO/x2wVz5nt4TmzPTxntsURzpcQAqGhoff8eIeeKXNzcwMA5Ofnlzh+vf/GXRmJbtStoT+ahrib2p/tvopzqfc+s1pehJc3lP5vQ7w+CnA3r3/Dod1IGvIicjf/wVkzIiIiIivh0EXZ9fVYycnJJY6npKQUO47ofylCYHj7MPi4Fm0/X6BKzNgShzyj9ptrCCGgtLkfysQFQONWpn6ZlYn0OdFQF0+HzEzXMCERERERAQ5elFWrVg0AcPbs2RLHz5w5U+w4opL4uekxvH2YqX0pw4BPdl3RMFFxwjcAyuDxEC8PAlzczAN7YqFGDYLct027cERERETk2EVZvXr14O7ujitXrpRYmG3fvh0A0KJFi4qORjameagHujUwb66x4XQ6Np+1nlkoIQSU+x6BEj0fzo1u+PecmQ510ftQl86BzMnSLB8RERGRI3Pookyv16NLly4AgKVLlxbbZXHNmjU4f/486tWrh1q1amkVkWzIi00DUSfAvP7wox1XEJ9p0DDRzUSlYPhNWgCvfsMAJ2dTv9y6EWr0EMgje7ULR0REROSghLSj1f579uzBypUrTe2TJ09CCFGsqOrevXuxmS+DwYCJEyfi5MmT8PPzQ7169ZCUlISTJ0/Cy8sLU6ZMQUhISIV+HaURHx/P3RetyJUsA4avPYfsgqI1ZRH+rpj+SDU4Xd873wpcP2dXD+6FunQucPZEsXHxwOMQPfpCuHCDG2vA95jt4TmzPTxntofnzLY4wvni7os3yMjIwMmTJ01/gKJt7W/sy8jIKPYYZ2dnREVFoXv37nB2dsbOnTtx9epVdOrUCdOnT7fqgoysT7CnMwZGmv/NnE7Jw9f7rmqY6NZESGUob0+HeKYPoDPfHUNuWgt14hDIU0c0TEdERETkOOxqpswRcabMOn24PQF/nEoztcc/UBmtwj1v/YAKVNI5kxfPQl06B7h0znygEBCPPAPx9IsQN1zqSBWL7zHbw3Nme3jObA/PmW1xhPPFmTIiK9SvZRCq+biY2vO2xiM5p0DDRLcnqtSAMnYWxOPPAeLajwUpIf9YBXXycMjzp7QNSERERGTHWJQRWYCLXsGojmFwvraWLCO/ELNj41GoWu/EtNA7QXm2D5R3pgPB4eaB+ItQp46Guvo7SKNRu4BEREREdopFGZGFVPV1weutgk3tQ1dysOJwyTcqtyaiZl0o4+dCdH7S3FlYCPnrd1CnjYGMu6BdOCIiIiI7xKKMyIIejvBBx2pepvb3B5Nw+GqOhonujnBxgfL861BGvgcEBJkHzp+COnk41D9WQaqF2gUkIiIisiMsyogsSAiBAW1CEOzpBABQJTArJg4Z+bZR0Ih6TaBEzYe47xFzp7EAcsXnUGeMhbwar104IiIiIjvBoozIwjycdRjVIQzXb1WWnGPEgm3a7ppZGsLNHcrLg6AMmQD4+JsHTh2BOnEI1E1rbeZrISIiIrJGLMqIKkCdSm54qVmgqb3jUhbWHE/VMFHpicatoExcANHmfnOnIR9y2WKoc6MgU+x3m1siIiIiS2JRRlRBnq7vj5ZhHqb2F3sTcTolT8NEpSc8vKC8PgpK/zGAp3mtHI7sgxo9BGrs35w1IyIiIiolFmVEFUQRAkPahcLPTQ8AMKoSM7dcRk6Bbawvu5Fo1RFK9EKgaRtzZ2425OdzoX44FTIjTatoRERERDaHRRlRBfJ11WNE+1BcW16GuMwCfLzziqaZ7pXw8YMycCxE36GAm7t5YN82qFGDIPfEaheOiIiIyIawKCOqYE1CPNCzUYCpvelsBv4+k65honsnhIDSoTOUqAVA/abmgawMqB9Ng/rpLMjsLO0CEhEREdkAFmVEGni+cSXUD3QztT/emYBLGfkaJiobERAIZdhEiN79AWcXU7/cvhlq9CDIQ7s1TEdERERk3ViUEWlApwiM7BAGT+eit2CeUWLmljgYClWNk907oShQHnwCyoR5QEQ980BaCtR5E6F+vQgyz/pvnE1ERERU0ViUEWkk0MMJg9uGmtpnU/PxxV7b31ZeBIdBGTMVovsrgF5v6pf//AE1egjk8UMapiMiIiKyPizKiDTUtooXnqjja2r/djwV2y9maheonAhFB6VLdyjj5gBVa5oHkq9CnTUW6g+fQRps93JNIiIiovLEooxIY31bBKGGn3kd1vxt8UjMLtAwUfkR4dWgvDsDouvzgHLtx42UkBt+gTp5OOTZk9oGJCIiIrICLMqINOasUzCqYxhc9UUb5WcZVMyOiUOhah83YRZ6JyhP94by7gwgtIp5IOES1Gmjof78DaTRPopQIiIionvBoozIClT2dkH/1iGm9pHEXHx/MEnDROVPVK8NZdxsiEeeAcS1O7WpKuRvy6G+Pwry0jkt4xERERFphkUZkZV4sIY3HqjubWr/eCgZBxKyNUxU/oSzC5Ser0IZNQWoFGweuHgW6nsjoP6+AlIt1C4gERERkQZYlBFZCSEE+rcJRqiXEwBAApgdG4/0PKO2wSxA1GkEJWo+RKcu5s5CI+RPX0Gd/g7klTjtwhERERFVMBZlRFbE3UmH0R3Dob/2zkzNNWLe1nio0j7Wl91IuLpB6TMAytBowDfAPHDmONRJQ6D+vQZStd37thERERHdLRZlRFYmwt8VfZsHmdq747Kx+liKhoksSzRqASV6AUTbB82dBgPkd0ugzpkAmXxVs2xEREREFYFFGZEV6lrXD63DPUztr/Ym4mRyroaJLEt4eELpNxzKW+8AXj7mgWMHoEYPhhqzAdIOZwuJiIiIABZlRFZJCIEhbUMR4KYHABRKYOaWOGQb7HsTDNGiPZToBUDztubOvFzIL+ZDXfgeZJr9zhgSERGR42JRRmSlvF31GNkhDMq13eMTsgrw4Y4Eu58xEt6+UN56F6LfcMDNPFuIAzuLZs12btEuHBEREZEFsCgjsmINg93Rq3ElU3vL+UxsOJ2uYaKKIYSA0vZBKNELgAbNzQPZmZBLPoC6ZAZkVoZm+YiIiIjKE4syIivXs2EAGgW5mdpLdl3BhfR8DRNVHOFfCcqwaIg+AwAXV1O/3Pkv1OjBkPt3apiOiIiIqHywKCOycjpFYESHMHi56AAAhkKJmf/GId/oGNvFCyGgdOoCJWo+ULuBeSA9FerCyVC/mA+Zm6NdQCIiIqIyYlFGZAMC3J0wrF2oqX0+PR9L9zjWVvEiMATKqCkQPV8F9E6mfhmzoWjW7Oh+DdMRERER3TsWZUQ2olW4J56q52dqrzuZhpgLjrWuSig6KI88A2X8HKBaLfNASiLU2eOhfrcEMt8xLu0kIiIi+8GijMiGvNwsEBH+5rVVi7Yl4EqWQcNE2hBhVaG88wHEU70Bnc7UL/9eA3XSUMjTxzRMR0RERFQ6LMqIbIiTTsHojmFw1Re9dbMLVMyKiYNRte9t8ksi9HooTz4P5d2ZQFhV88DVOKjT34H605eQBQXaBSQiIiK6SyzKiGxMqJczBrQJNrWPJ+Xh2/2JGibSlqgWAWXcHIhHuwHi2k3dpAr5+0qoU0ZAXjijbUAiIiKiO2BRRmSDOtXwQeeaPqb2yiMp2BufrWEibQknJyg9+kIZMw0IMm+Igsvnob4/EuqaHyALC7ULSERERHQbLMqIbNQbrYMR7u1sas+JjUNqrlHDRNoTtepDmTAP4sEnzJ2FhZC/LIM6bQxk/CXtwhERERHdAosyIhvlqi9aX+akFF2yl55XiLmxcVCl460vu5FwcYXSuz+U4ZMA/0rmgXMnoU4eBvXPXyBVx7jHGxEREdkGFmVENqyGnytebRlkau9LyMFPR1I0TGQ9RINmUKIWQHTobO4sMEAu/wzqrLGQiQnahSMiIiK6AYsyIhv3WG1ftK3iaWov25+IY4m5GiayHsLdA0rfoVAGjgW8fc0DJw5DnTgU6j9/QDr4zCIRERFpj0UZkY0TQmBwZCgC3fUAAFUCs2IuIyufG1tcJ5pFQoleCNGyg7kzPxfy60VQ50+ETE3WLBsRERERizIiO+DposPIjmG4trwMV7ONWLg9gbNANxBe3lDefBvijdGAh5d54NAeqNGDoG7bxO8XERERaYJFGZGdqB/ojhebBJraWy9mYt3JNO0CWSml9X1QohcAjVuZO3OyIT+bDXXxdMjMdM2yERERkWNiUUZkR7o19EfTEHdT+7PdV3EuNU/DRNZJ+PpDGTwe4uVBgIubeWBPLNSoQZB7t2kXjoiIiBwOizIiO6IIgeHtw+DjqgMAFKgSM7bEIc/ILeD/lxACyn2PQImeD9RtbB7ITIf64ftQl86BzMnSLB8RERE5DhZlRHbGz02PYe1CTe1LGQZ8suuKhomsm6gUDGXEZIjnXweczDfjlls3Qo0aDHl4r4bpiIiIyBGwKCOyQy3CPNGtgb+pveF0Ov45l6FhIusmFAVK5yehTJgL1KhjHkhLhjo3CuqyjyDzeJsBIiIisgwWZUR26sWmgagT4Gpqf7g9AfGZBg0TWT8RUhnK29Mhnn0J0OlN/XLT71AnDYU8cVjDdERERGSvWJQR2Sm9IjCqYxjcnYre5rlGFTO3xKGgkOvLbkfodFAe7wll3Cygcg3zQGIC1Jn/hfrjUsgCFrdERERUfliUEdmxYE9nDIoMMbVPpeRhccw57QLZEFG5BpSxMyEefw4Q135USgm5/meok4dDnjupbUAiIiKyGyzKiOxch2reeLSWr6n93Z7LiD2bol0gGyL0TlCe7QPlnelASLh5IP4i1Kmjof7yLaTRqF1AIiIisgssyogcQL+WQajqY95Z8L31x5GcU6BhItsiataFMn4uxENPmTtVFXLN91CnjoK8fF67cERERGTzWJQROQAXvYLRHcPhrBMAgLRcI+bExqNQlRonsx3C2QVKr9egjJoCBASZBy6cgfrecKh//ASpFmoXkIiIiGwWizIiB1HV1wWvtwo2tQ9eycHKw8kaJrJNom5jKNHzIe57xNxpNEKu+ALqjP9CXo3TLBsRERHZJhZlRA7k4QgfdK5dydT+7mASDl/N0TCRbRKu7lBeHgRlSBTgY74fHE4dhTpxKNSNayFV7nJJREREd4dFGZEDEULg7YdqI9TbBQCgSmBWTBwy83nZ3b0QjVtCmbgAok0nc6chH/LbxVDnRkGmJGoXjoiIiGwGizIiB+Pposekx+rh2vIyJOcYsWBbPKTk+rJ7ITy8oLw+EsqbbwOeXuaBo/uhRg+GGvsXv7dERER0WyzKiBxQw1Bv9GkWaGpvv5SFtSfStAtkB0TLDlAmLgSatjF35uZAfj4P6qIpkOmp2oUjIiIiq8aijMhBPVPfH81DPUztpXuu4kxKnoaJbJ/w9oMycCzEf4YBbu7mgf07oEYPgtwdo1k2IiIisl4syogclCIEhrUPhZ+rDgBgVCVmbIlDbgE3qCgLIQSU9v8HJXoBUL+peSArE+ri6VA/mQmZnalZPiIiIrI+LMqIHJivqx7D2ofh2vIyxGUasGRXgqaZ7IXwD4QyfBLEi28Czi6mfrnjH6hRgyEP7tIwHREREVkTFmVEDq5ZqAe6Nwwwtf8+k4GNZ9I1TGQ/hBBQHngcStQ8oFZ980B6CtT5k6B+tRAyl7ckICIicnQsyogILzSphHqV3EztxTsTcDnDoGEi+yKCwqCMfh+ix38Avd7UL/9dD3XiEMhjBzRMR0RERFpjUUZE0CsCIzuEwcO56EdCnlFi5pbLKCjk+rLyIhQdlEefhTJuLlA1wjyQfBXqrHFQv/8E0pCvWT4iIiLSDosyIgIABHk6YXBkqKl9JjUfX+7lzY/LmwivCuXdGRBPvgDodKZ++devUCcPgzxzXMN0REREpAUWZURk0q6qFx6r7Wtq/3o8FdsvcafA8ib0eihPvQDl3RlAaBXzQMJlqNPehrrqa0hjgXYBiYiIqEKxKCOiYl5tGYTqvubdAhdsjUdSDgsESxDVakEZPwfi0WcBcW0PTKlCrv0R6pSRkBfPahuQiIiIKgSLMiIqxlmnYFTHMLjoioqETIOKWVviUKhKjZPZJ+HkDKXHf6CMngoEhpgHLp2DOmUksn78ArLQqF1AIiIisjgWZUR0kyo+LnijdbCpfSQxF8sPJWmYyP6J2g2gTJgH8cDj5s5CI7KWfYyUd9+ETLikWTYiIiKyLBZlRFSizjV9cH81b1N7+aFkHLrCe2pZknB1g/Lim1CGTQT8Kpn6C04chjppGNQNqyFV7ohJRERkb1iUEVGJhBB4KzIYIZ5OAABVArNj4pCRx0vpLE00bA4lej5Eu/8zdxYYIH/4FOrs8ZBJVzTLRkREROWPRRkR3ZK7kw6jOoZBf+0nRXKuEfO3xUNKri+zNOHuCeXVYfB9ZxoUHz/zwPGDUKOHQP13Pc8DERGRnWBRRkS3VTvADS83CzK1d17OxprjqRomciyubTuh0vxlQIv25s78XMivFkJdMBkyLVm7cERERFQuWJQR0R09Wc8PLcM8TO0v9l7FqeQ8DRM5FsXHD8qbb0O8NhJwN58HHNwFNWow1O2bOWtGRERkw1iUEdEdKUJgaLtQ+LnpAQBGFZgZcxk5BYUaJ3McQggokZ2gTFwINGppHsjJgvx0FtSPp0NmpmsXkIiIiO4ZizIiuis+rnqMaB+Ka7c4RnxmARbvuMIZmgomfAOgDJkA8fIgwMXNPLA7FmrUIMh927ULR0RERPeERRkR3bUmIR7o2SjA1N58LgMbz2ZomMgxCSGg3PcIlKh5QJ1G5oHMdKiLpkD9fB5kTrZ2AYmIiKhUWJQRUak837gSGgSaZ2gW70jApYx8DRM5LhEYAmXkexC9XgOcnE39MvYvqBMHQx7Zp104IiIiumssyoioVHSKwIgOYfB0LvrxkV8oMXNLHAyFvKmxFoSiQHnoKSjj5wI16pgHUpKgzpkA9dvFkPnclIWIiMiasSgjolIL9HDCkLahpvbZ1Hx8seeqholIhFaG8vZ0iGf6ADq9qV9uXAt14hDIU0c0TEdERES3w6KMiO5JZBUvPFHXfFPj306kYdvFTA0TkdDpoDzxHJT/zgTCq5kHEhOgfvAu1BVfQBYYtAtIREREJWJRRkT3rG/zQNTwczG1F2yLR2J2gYaJCABE1ZpQxs6GeKwHIK79mJcS8o+foL43AvL8aW0DEhERUTEsyojonjnrFIzqGAZXfdFG+VkGFbNi4lCocpt8rQknJyjdXoby9jQgONw8EHcB6tRRUFd/B2k0aheQiIiITFiUEVGZVPZ2Qf/WIab20cRcfH8wScNEdCMRUQ/K+LkQnZ80dxYWQv76HdRpYyDjLmgXjoiIiACwKCOicvB/NX3wQA1vU/vHQ8k4kMD7ZFkL4eIC5fnXoYx8DwgIMg+cPwV18nCof6yCVAu1C0hEROTgWJQRUbno3zoYYV5OAAAJYHZMHNLyeHmcNRH1mkCJmg/R8WFzp7EAcsXnUGeMhbwar104IiIiB8aijIjKhbuTDqM6hkOvFK0vS80rxPyt8VAl15dZE+HmDuWVwVAGjwd8zLtn4tQRqBOHQN20FpLnjIiIqEKxKCOichPh74q+zQNN7d1x2Vh9LEXDRHQroklrKNELINrcb+405EMuWwx1bhRkCtcFEhERVRQWZURUrrrW9UPrcE9T+6u9iTiZnKthIroV4ekN5fVRUPqPATy9zANH9kGNHgx160bOmhEREVUAFmVEVK6EEBjSLhQBbnoAQKEEZm6JQ7aBG0lYK9GqI5TohUDTNubO3GzIpXOgfjgVMiNNq2hEREQOgUUZEZU7bxcdRnYIw7XlZUjIKsCHOxI462LFhI8flIFjIfoOBdzczQP7tkGNGgS5J1a7cERERHaORRkRWUTDYHf0alzJ1N5yPhMbTqdrmIjuRAgBpUNnKFELgPpNzQNZGVA/mgb101mQ2VnaBSQiIrJTLMqIyGJ6NgxAoyA3U3vJriu4mJ6vYSK6GyIgEMqwiRC9+wPOzqZ+uX0z1OhBkId2a5iOiIjI/rAoIyKL0SkCIzqEwctFBwAwFErM2BKHfKOqcTK6E6EoUB58AsqE+UBEPfNAWgrUeROhfr0IMi9Hu4BERER2RK91AHu2bds2/PLLL0hISIDBYIC/vz86dOiAHj16QK/nt54cQ4C7E4a2DcV7my8BAM6n5ePzPVfxZpsQjZPR3RDBYVDGTIVc/zPkL8sAY9ENweU/f0Ae3gvlP8Mg6jbSOCUREZFtY2VgQZ6ennj66acRHh4OFxcXnDt3DkuWLEFOTg5effVVreMRVZjWlT3xZD0//HosFQDw+8k0NAlxR/uq3hono7shFB1El+6QjVtBXToHuHCmaCD5KtRZYyE6PwXxbB8IZxdtgxIREdkouynKzpw5gwMHDuDUqVM4efIkUlNT4eTkhGXLlt32cQaDAT///DNiYmKQlJQET09PNG3aFL169UJAQECZMjVqVPzT46CgIBw5cgQHDx4s0/MS2aJXmgXiyNUcnE4pWlO2cFsCIvxdEezpfIdHkrUQ4dWgvDsD8rcfIdcuB1QVkBJywy+Qh3ZBeXU4RI06WsckIiKyOXazpmzFihX49ttvsWPHDqSmpt7VYwwGAyZPnowVK1YgLy8PrVq1QkBAADZt2oS3334bCQkJ5Zrx0qVL2LdvHxo2bFiuz0tkC5x0CkZ1CIervujHTnaBilkx8TCq3Cbflgi9E5Sne0N5dwYQWsU8kHAZ6rQxUH/+BtJYoF1AIiIiG2Q3M2V16tRB9erVERERgYiICLzxxht3fMyqVatw/Phx1KlTB+PGjYOrqysAYM2aNfjqq6/w0UcfYeLEiabjs7KykJV1++2g3dzc4OPjU6zvpZdeQmFhIYxGIx566CH07du39F8gkR0I83bGW22CMSc2HgBwPCkX3x1IwkvNAjVORqUlqteGMm425C/LIP/8BZASUFXI35ZD7t8Jpd8wiMo1tI5JRERkE+ymKHvmmWdKdbzRaMS6desAAP369TMVZADQtWtXbN68GUePHsWZM2dQs2ZNAMDatWuxYsWK2z5vp06dMHDgwGJ9M2bMgMFgwOnTp/Htt9/C19cXzz33XKnyEtmLB2r4YH9CDv4+U3TPspWHk9E42B3NQj00TkalJZxdIHq+Ctk0EuoX84DEa1cXXDoL9b2REE/3hnjkWQidTtugREREVs5uirLSOnbsGLKzsxEcHIwaNW7+NDcyMhLnz5/Hrl27TEVZjx490L1799s+rxDipr6QkKJd5qpWrQohBD766CM89dRTxQpBIkfyRqtgHE/KxeUMAySAObFxmPd4Dfi6OeyPJJsm6jSEMmEe5IrPITcXfdiFQiPkT19B7ttetENjSLi2IYmIiKyY3awpK63z588DQIkFGQBTIXb9OABQFAU6ne62fxTl7r6lhYWFZfwKiGyXm5OCUR3C4KQUfYiRlleIOVvjoUquL7NVwtUNSp8BUIZGA743bJJ05jjUyUOh/rUGUuX96YiIiErisB9LJyUlAcAtd1j09/cvdty9WLFiBWrXro3g4GBIKXHq1CksW7YMrVq1gofH3V2qNWLEiJv6nJ2dMW3aNABApUqV7jlfebh+v7XAQK4JshXWcs4CA4EheTrM2ngaALAvPht/XshHn1ZV7vBIx2It5+uuPfgo1NbtkfHpbORtujZrZjBAfr8ETod3w2fwWOiCQrXNaGE2d86I58wG8ZzZFp6vO3PYoiwvLw8A4OJS8n11rl9aeP24e2EwGLB06VIkJydDp9MhMDAQTzzxBB5//PF7fk4ie9KtSSh2XkjDP6eTAQAfx55Hs3AfNArl/ctsmeLpBd9hUchr2wkZH30ANb1oR1zDwd1IGtoHXv2Gwa1z1xIv9yYiInJEDluUyTtcJnWn8bvRu3dv9O7du0zPMXv27NuOJyUllUvWe3X9E4/ExETNMlDpWNs5e6O5P47EpyMpx4hCVWLcmiOY83h1eDpzcwjA+s5XqUQ0BCbMA775ENi7DQAgc3OQsfB9ZPzzJ5SXBkL4+mscsvzZ9DlzUDxntofnzLY4wvkSQiA09N6vBLHImrKkpCQkJSXBYDBY4unLhZubGwAgPz+/xPHr/dyMg8iyvFx0GNUhDNeWl+FqdgE+3J6g6YcNVH6Ety+Ut96F6DcccLvhsu0DO6FGD4a681/twhEREVkJixRlAwcOxKBBg+54Ty8tXV+LlZycXOJ4SkpKseOIyHLqB7njhSbm91rMhUysP5WuYSIqT0IIKG0fhBK9AGjY3DyQnQm5ZAbUjz+AzMzQLB8REZHWLFKUubq6wt3d3bRZhjWqVq0aAODs2bMljp85c6bYcURkWd0bBKBJsLup/enuKzifVvJMNtkm4V8JytBoiJcGAC7mqxDkri1QowdB7t+hYToiIiLtWKQoCwwMRH5+PlQr3v64Xr16cHd3x5UrV0oszLZv3w4AaNGiRUVHI3JIOkVgWPtQ+LgUrSUzFErM2HIZ+Ubr/TlCpSeEgHJ/FyhR84HaDcwDGWlQF74H9Yt5kDnZ2gUkIiLSgEWKstatW8NoNGLPnj2WePpyodfr0aVLFwDA0qVLi+2yuGbNGpw/fx716tVDrVq1tIpI5HAC3J0wtJ15kezFdAM+3X1Fw0RkKSIwBMqo9yGe6wfonUz9MuYvqBOHQB7dr2E6IiKiimWR3ReffvppxMbG4pNPPkFgYGCFXAK4Z88erFy5slif0WjE2LFjTe3u3bsXm/nq1q0bDh48iOPHj2Po0KGoV68ekpKScPLkSXh5eWHAgAEWz01ExbUM98Qz9f3x89GidZ3rT6WjSbAH7qvObfLtjVAUiIefhmzUAupnc4Dzp4oGUhKhzh4P8eATEN1fgXDhhktERGTfLFKUbd++HQ8//DB+/PFHvPPOO2jWrBnq1q0LHx8fKMqtJ+c6dep0z6+ZkZGBkydPFuuTUhbry8govpDc2dkZUVFRWLVqFbZs2YKdO3fCw8MDnTp1Qq9evbjJB5FG+jQNxOGrOTiZXDSD/eGOBNQOcEWIl7PGycgSRGgVKO/OgPx9BeSa74HCQgCA3Pgb5OE9UF4dDhFRT+OUREREliOkBfad7tWrV+mDCIHvv/++vKPYvfj4eN6njErFVs5ZQqYBw38/h5yCojVltQNcMfXhanDSOdYNh23lfJUXeeE01KVzgcvnzZ1CgejyLMSTvSGcnG75WGvhaOfMHvCc2R6eM9viCOerrPcps8hMGWeYiKisQrycMaBNCGbGxAEATibnYdn+RPRtEaRxMrIkUTUCytjZkL9+C7luFSBVQKqQv6+EPLALyqvDIKpGaB2TiIioXFmkKFu0aJElnpaIHMx91b2xPyEbf54uumfZqqMpaBLijhZhnhonI0sSTk4Q3V6BbBpZNGt2tagwx+XzUN8fBdG1F8RjPSF0Ok1zEhERlReL7L5IRFReXm8VjMre5rVkc2PjkZJr1DARVRQRUQ/KhLkQ/9fV3FlYCPnLt1CnjYGMv6hdOCIionLEooyIrJqLXsHojmFwvraWLD2/EHNi46BquJaSKo5wcYXywhtQRkwG/G+4NP7cSaiThkFd/zOkFd8Tk4iI6G5USFF28eJFbNq0CatXr8bq1auxadMmXLp0qSJemojsQHU/V7x6w1qyAwk5+OlwioaJqKKJ+k2hRC2A6NDZ3GksgPxxKdRZYyETE7QLR0REVEYWWVN23b59+7Bs2TJcuHChxPGqVauiT58+aNq0qSVjEJEd6FLbF/sTcrD1YiYAYNmBRDQMdkP9QHeNk1FFEe4eEH2HQjZvB/WrhUBGWtHAicNQJw6B6PkqxP2PQgjH2qGTiIhsn8VmytatW4epU6eaCjJFUeDj41PsXmUXLlzA+++/j3Xr1lkqBhHZCSEEBkWGIMij6LMkVQKztsQhK79Q42RU0UTTNlAmLoRo1dHcmZ8H+c2HUOdFQ6YmaxeOiIjoHlhkpuzcuXP44osvAAC1atVCz5490bBhQzhdu79MQUEBDh8+jJUrV+LEiRP48ssvUb9+fVSrVs0ScYjITni66DCyQzje/fM8VAkk5hixcHs83r4vnLMjDkZ4ekP0HwO1RTvIZYuB7KIZVBzeCzV6EMQLb0BEPsB/F0REZBMsMlO2Zs0aSCnRsmVLTJ48Gc2aNTMVZADg5OSEZs2aYeLEiWjZsiVUVcVvv/1miShEZGfqBbrhxaaBpvbWi1lYdzJNu0CkKaX1fVCiFwCNW5k7c7IhP5sDdfE0yOuXOBIREVkxixRlR48eBQD07dvXdKliiS+uKOjbty8A4PDhw5aIQkR2qFsDfzQNMa8l+2z3VZxLzdMwEWlJ+PpDGTwe4pXBgKubeWDPVqjRgyH3bNUuHBER0V2wSFGWlpYGd3d3BAUF3fHYoKAguLu7Iy0tzRJRiMgOKUJgePsw+LgW3Ty4QJWYsSUOeUZuje6ohBBQOj4MJXoBULexeSAzHepHU6F+NhsyO0uzfERERLdjkaLM2dkZBoMBhYV3XoBfWFgIg8EAZ2fnOx5LRHSdn5sew9uHmdqXMgz4ZNcVDRORNRABQVBGTIZ4/g3ghv9X5LZNRbNmh/ZomI6IiKhkFinKKleuDKPRiG3btt3x2K1bt8JoNKJy5cqWiEJEdqx5qAe6NfA3tTecTsfms+kaJiJrIBQFSueuUMbPA2rWNQ+kJUOdFw31mw8h83K1C0hERPQ/LFKUtW3bFgDw6aef4sCBA7c87sCBA/jss88AAO3atbNEFCKycy82DUSdAFdT+6MdVxCfadAwEVkLERIO5e1pEN1eAfTmzYbl5nVQJw2FPMG1zEREZB2ElFKW95MWFBTgnXfewaVLlwAAderUQePGjeHv7w8hBJKTk3Hw4EGcOHECAFClShVMmzYNer1F72Vtl+Lj42GBU3jXAgOLdsFLTEzULAOVjj2esytZBgxfew7ZBUVryiL8XTH9kWpw0tn+duj2eL60IC+dg7p0DnDxrLlTCIiHn4Z4pg+EU/ldQs9zZnt4zmwPz5ltcYTzJYRAaGjovT/eEkUZAKSkpGDWrFk4derUbY+rVasWRo4cCX9//9seRyVjUUalZa/nLOZ8Bj7YEmdqP13PD6+2DNYwUfmw1/OlBWksgFzzA+TvKwD1hk1hQqtAeXUYRPXa5fI6PGe2h+fM9vCc2RZHOF9lLcosNjXl7++PyZMnY9u2bYiNjcWZM2eQnl601sPHxwc1a9ZEhw4dEBkZedtt84mI7kaHat54NCEHf5xKAwD8ciwVTUI80CrcU9tgZDWE3gnimT6QTdtAXToXSCi6mgPxF6FOHQ3x+HMQT/SE0Dvd9nmIiIjKm0WvF1QUBe3bt0f79u0t+TJERACAfi2DcCwxF+fT8wEA87bGY+7j1RHgzl+yyUzUqANl/BzIVd9A/rUakBJQVcg130Me2AHl1eEQ4dW0jklERA7EIlNUvXr1wvPPP4+EhARLPD0RUYlc9ApGdQyD87W1ZBn5hZgdG49CVbtLfMk6CWcXKL36QRk5BQi44Z6aF85AfW841HUrIdU739aFiIioPFjsPmWurq4ICQmxxNMTEd1SVV8XvN7KvJbs0JUcrDicrGEismaibiMo0fMh7n/U3Gk0Qq78EuoH70JeibvlY4mIiMqLRYoyf3//u7pxNBGRJTwc4YOO1bxM7e8PJuHw1RwNE5E1E67uUF4aCGVoFOB7w6ZTp49BnTQE6t9rIG/cGISIiKicWaQoa9GiBQwGA44cOWKJpyciui0hBAa0CUGwZ9FaMlUCs2LikJHPD4vo1kSjllCiF0JEdjJ3GgyQ3y2BOjcKMtl+dw0jIiJtWaQoe/bZZ+Ht7Y1PPvkEqamplngJIqLb8nDWYVSHMFy/VVlyjhELtml7CwmyfsLDE8prI6G8+Q7g6W0eOLof6sTBUGM28N8QERGVO4vsvnjp0iW88MIL+PLLLzFixAjcd999qFevHry9vW+7/X2DBg0sEYeIHFSdSm54qVkgvthbNMOx41IWfjuRiq51eV9Euj3Rsj2U2g2gfv0hsG9bUWduDuQX8yH3boPy0kAIHz9tQxIRkd2wSFE2ceLEYu0//vgDf/zxx20fI4TA999/b4k4ROTAnq7vjwMJOdgTnw0A+HxPIhoEuqOmv6vGycjaCW9fKAPehdy2CfK7JUBu0b8h7N8B9fRRKC++BdGqo7YhiYjILljNXZt5OQgRWYIiBIa2D4Wfqw4AYFQlZmyJQ24BN26gOxNCQGn3IJToBUCD5uaBrEyoH38AdckMyOxMzfIREZF9sMhM2Q8//GCJpyUiuie+rnoM7xCGqL8uQgKIyzRgya4EDG0XpnU0shHCvxKUYdGQm9dBrvgcyM8DAMid/0KeOATl5UEQTVprnJKIiGyVRWbKkpKSkJSUBIPBYImnJyIqtaYhHujeMMDU/vtMBjaeSdcwEdkaIQSUBx6DMmEeUOuGNdDpqVAXTIb65QLIXN56gYiISs8iRdnAgQMxaNAgZGVlWeLpiYjuyQtNKqFeJTdTe/HOBFzO4IdHVDoiKBTK6CkQPf8D6J1M/XLLn1AnDkH+wd0apiMiIltkkaLM1dUV7u7u8PfnDmdEZD30isDIDmHwcC760ZdnlJi55TIKCrm+jEpHKDoojzwLZdwcoFot80DyVaSOH4SMT+dA5udrF5CIiGyKRYqywMBA5OfnQ1X5iw4RWZcgTycMjgw1tc+k5uPLvbwpMN0bEV4VyjsfQDzVG9DpTP05a5ZDnTwM8vQxDdMREZGtsEhR1rp1axiNRuzZs8cST09EVCbtqnrhsdq+pvavx1Ox/RJ30KN7I/R6KE8+D+XdGUBYVfPAlctQp78D9aevIAsKtAtIRERWzyJF2dNPP42QkBB88sknOH/+vCVegoioTF5tGYTqvi6m9oKt8UjK4S/OdO9EtVpQxs2Gx7N9ACGKOqUK+fsKqO+PhLx4VtuARERktYS0wA3CNm/ejMzMTPz4448wGAxo1qwZ6tatCx8fHyjKrevATp06lXcUuxcfH6/pPd4CAwMBAImJvPzLVvCcmV1Mz8fI388hv7DoPdQg0A3vPVQVOkVonMyM58v2BAYGwnB0P1JmRwOJCeYBnR7iyechunSHuOFSR9Ie32e2h+fMtjjC+RJCIDQ09M4H3oJF7lP24YcfFmvv2bPnjpcyCiFYlBFRhari44I3WgdjwbaiX5yPJOZi+aEkvNAkUONkZOuc6zeFEjUfcuUXkBvXFnUWGiF//gZy33Yorw6HCK2sbUgiIrIaFinKKlWqZImnJSIqd51r+mB/Qg7+OZcBAFh+KBmNgt3RONhD42Rk64SLK0TvNyGbtYX65XwgJalo4NxJqJOHQXR7CeL/noS4zRUkRETkGCxSlC1atMgST0tEVO6EEHirTTBOJOUiIasAqgRmx8Rj3uPV4e1qkR+R5GBEg2ZQohZA/vApZOxfRZ0FBsgfPoPcux1K3yEQgSHahiQiIk3x4zkicnjuTjqM6hgG/bWfiCm5Rszbqu16TbIvwt0Dyn+GQhk4FvD2NQ+cOAR14lCo//zBf29ERA7MKoqyEydO4MiRI1rHICIHVjvADS83CzK1d8Vl49fjqRomInskmkVCiV4ItGxv7szPhfx6EdT5kyDTkjXLRkRE2imXoqxXr17o379/iWNffPEFPvroo9s+fubMmZg0aVJ5RCEiumdP1fNDqzDzWrIv917FqeQ8DRORPRJe3lD6vw3x2kjA3dM8cGg31KjBULdv5qwZEZGDsfhMWWxsLDZt2nTH4/gfEBFpTQiBIe1C4e9WtJbMqAIztlxGTkGhxsnI3gghoER2gjJxAdCopXkgJwvy01lQF0+HzEzXLiAREVUoq7h8kYjIWvi46jGiQyiu36ksIasAH+24wg+OyCKEbwCUIRMgXh4EuLiZB/bEQo0aBLlvm3bhiIiowrAoIyL6H42DPfBc4wBT+59zGfj7DGctyDKEEFDuewRK9HygbmPzQGY61EXvQ106BzInS7N8RERkeSzKiIhK0KtRJTQINM9cfLzzCi6l52uYiOydqBQMZcRkiF6vAU7Opn65dSPU6CGQR/ZqmI6IiCyJRRkRUQl0isCIDmHwci76MZlfKDFjSxwMharGycieCUWB8tBTUCbMBWrUMQ+kJkGdEwV12UeQebma5SMiIstgUUZEdAuBHk4Y3C7U1D6Xlo/P91zVMBE5ChFSGcrb0yGe6QPozDcxl5t+hzppKORJ3kaGiMiesCgjIrqNyMpe6FrXz9ReeyIN2y5mapiIHIXQ6aA88RyUsbOAytXNA4kJUGe8C/XHzyELDJrlIyKi8sOijIjoDvo2D0RNPxdTe8G2eCRmF2iYiByJqFIDythZEI8/B4hr/21LCbl+FdTJwyHPn9I2IBERlZn+zofcnbS0NPTq1euW47cbIyKyZk46BaM6hmPE72eRZ5TIMqiYFROHKQ9VhU4Rd34CojISeieIZ/tANm0Ndelc4MrlooH4i1CnjoZ4/DmIx3tC6Mvtv3UiIqpAnCkjIroL4d7OeLN1iKl9NDEX3x9M0jAROSJRsy6U8XMhHnrK3FlYCPnrd1Cnjoa8fEG7cEREdM/K5SO1Hj16lMfTEBFZtQdr+mBfQjY2nc0AAPx4KBmNg93RJMRD42TkSISLC0Sv1yCbRUL9fB6QfG3zmQunob43HOKZPhAPPwWh6LQNSkREd61cirKePXuWx9MQEVm9/q2DcSIpF3GZBZAAZsfEYe4TNeDrysvGqGKJuo2hRM+HXL4U8t/1RZ3GAsgVn0Pu2wblP0MhgsI0zUhERHeHly8SEZWCu5MOozqGQ39tLVlqXiHmb42HKqXGycgRCVd3KC8PgjJkAuDjbx44dRTqxKFQN62F5L9NIiKrx6KMiKiUIvxd0bd5oKm9Oy4bq4+laJiIHJ1o3ArKxAUQbe43dxryIZcthjo3CjIlUbtwRER0RyzKiIjuQde6fmgd7mlqf7U3ESeTczVMRI5OeHhBeX0UlP5jAE8v88CRfVCjB0ON/YuzZkREVopFGRHRPRBCYEi7UAS4Fa0lK5TAzC1xyDYUapyMHJ1o1RHKxIVA0zbmztwcyM/nQf3wfciMVO3CERFRiViUERHdI28XHUZ2CMP1W5UlZBXgwx0JnI0gzQlvPygDx0L8Zyjg5m4e2LcdatQgyN0x2oUjIqKbsCgjIiqDhsHu6NW4kqm95XwmNpxO1zARUREhBJT2naFELwDqNzUPZGVCXTwd6iezILMzNctHRERmLMqIiMqoZ8MANApyM7WX7LqCC+n5GiYiMhP+gVCGTYTo/Sbg7GLqlzs2Q40aDHlwl4bpiIgIYFFGRFRmOkVgRIcweLkU3azXUCgx89845BtVjZMRFRGKAuXBx6FEzQNq1TcPpKdAnT8J6lcLIfNytAtIROTgWJQREZWDAHcnDGsXamqfT8/H0j1XNUxEdDMRFAZl9PsQPfoCevMNz+W/66FGD4E8fki7cEREDoxFGRFROWkV7omn6vmZ2utOpiHmQoaGiYhuJhQdlEe7QRk3F6gaYR5Ivgp15n+h/vAppIGX3xIRVSQWZURE5ejlZoGI8Hc1tRdtS8CVLIOGiYhKJsKrQnl3BsSTzwOK+dcBuWE11MnDIM+e0DAdEZFjYVFGRFSOnHQKRncMg6u+6MdrdoGKWTFxMKrcJp+sj9DroTzVG8p/ZwKhVcwDCZehTh0DddU3kMYC7QISETkIFmVEROUs1MsZA9oEm9rHk/Lw7f5EDRMR3Z6oVgvK+DkQjzwLiGs33pMq5NrlUKeMgrx0VtuARER2jkUZEZEFdKrhg841fUztlUdSsDc+W8NERLcnnJyh9PwPlFHvA4Eh5oFLZ6G+NxLq2h8hCwu1C0hEZMdYlBERWcgbrYMR7u1sas+JjUNqrlHDRER3Juo0hDJhHsQDj5k7C42Qq76GOv1tyIRLmmUjIrJXLMqIiCzEVV+0vsxJKbocLD2vEHNj46BKri8j6yZc3aC8+BaUYRMB3wDzwNkTUCcPg/rXr5Aq78NHRFReWJQREVlQDT9XvNoyyNTel5CDn4+kaJiI6O6Jhs2hTFwA0e5Bc6fBAPn9J1Bnj4dMuqJdOCIiO8KijIjIwh6r7Yu2VTxN7W/2J+J4Uq6GiYjunnD3hPLqcCgD/gt4mddJ4vhBqBOHQP13PSRnf4mIyoRFGRGRhQkhMDgyFIHuegBAoQRmbolDloGbJpDtEM3bQpm4EGjRztyZlwv51UKoCyZDpiVrF46IyMaxKCMiqgCeLjqM7BCGa8vLcDW7AB9uT+AMA9kU4eUD5c13IF4bCbh7mAcO7oIaNRjqjn+0C0dEZMNYlBERVZD6Qe7o3aSSqR1zIRPrT6VrmIio9IQQUCI7QYleCDRqYR7IyYL8ZCbUjz+AzMzQLB8RkS1iUUZEVIG6NQhAkxB3U/vT3VdwPi1fw0RE90b4BUAZEgXx0kDAxc3UL3dtgRo9CHL/Dg3TERHZFhZlREQVSKcIDG8fBh8XHQDAUCgxY8tl5Bu5vTjZHiEElPsfhRI1D6jTyDyQkQZ14XtQP58HmcObphMR3QmLMiKiCubvpsfQdqGm9sV0Az7dza3FyXaJwBAoI9+D6NUPcDLfMF3G/gV14mDIo/s1TEdEZP1YlBERaaBluCeeqe9vaq8/lY5/z3EdDtkuoShQHnoayvi5QPXa5oGUJKizx0P9djFkfp5m+YiIrBmLMiIijfRpGojaAa6m9oc7EpCQadAwEVHZidDKUN75AOLpFwGdztQvN66FOmko5KmjGqYjIrJOLMqIiDTipBMY1SEM7k5FP4pzClTMjIlDQSG3ySfbJnQ6KF17QfnvLCC8mnngajzUD96FuuILyAJ+AEFEdB2LMiIiDYV4OWNAmxBT+2RyHpbtT9QwEVH5EVVrQhk7G+KxHoC49iuHVCH/+AnqeyMgz5/WNiARkZVgUUZEpLH7qnvj4QgfU3vV0RTsicvSMBFR+RFOTlC6vQzl7WlAUJh5IO4C1KmjoP76PaTRqF1AIiIrwKKMiMgKvN4qGJW9zbvWzY2NR0ouf1El+yEi6kGZMA+i85PmzsJCyNXfQp02BjLugnbhiIg0xqKMiMgKuOgVjO4YBmedAACk5xdiTkwcClWuLyP7IVxcoDz/OpQRkwH/QPPA+VNQJw+Hun4VpFqoXUAiIo2wKCMishLV/VzRr2WQqX3gSg6+2XVRw0REliHqN4USvQCi48PmTmMB5I+fQ505FjIxQbNsRERaYFFGRGRFHq3li/ZVvUztT7eex4G4dA0TEVmGcHOH8spgKIPGAz5+5oGTR6BOHAJ18zpIyZliInIMLMqIiKyIEAIDI0MQ5KEHABRKIOr348jM5yVdZJ9E09ZQohdAtL7P3JmfB/nNh1DnRkOmJGmWjYioorAoIyKyMp7OOozqGA6laHkZrmTmY+H2eM4akN0Snt5Q3hgN8cYYwNM8U4wje6FGD4a6dSP//RORXWNRRkRkhepWckOfpuaNELZdzMLvJ9O0C0RUAZTWHaFELwSatDZ35mZDLp0D9aOpkBlpWkUjIrIoFmVERFbq2Qb+aF3V19ReuvsqzqbmaReIqAIIHz8og8ZB9B0CuLqZB/Zugxo1CHJPrHbhiIgshEUZEZGVUoRA1KN14e/uBAAoUCVmbIlDnlHVOBmRZQkhoHR4CEr0AqBeE/NAVgbUj6ZB/Ww2ZDZvsE5E9oNFGRGRFfP3cMaER+ua2pczDFiy84qGiYgqjggIgjJ8EsQLbwDO5pury22boEYPgjy0W8N0RETlh0UZEZGVa1PND90b+Jvaf51Jx+az3CafHINQFCj/1xXKhPlARD3zQFoK1HkToX79IWRejnYBiYjKAYsyIiIb0LtpIOpWcjW1P9pxBfGZBg0TEVUsERwGZcxUiG6vAHq9qV/+sw7qxKGQJw5pmI6IqGz0dz6EymL58uVYsWLFTf0LFy5EUFCQBomIyBbpFYGRHcIwfO05ZBeoyDWqmLElDtMfqQYnndA6HlGFEIoO4rHukI1bQl06B7h4tmgg6QrUmWMhOj8F8WwfCGcXbYMSEZUSi7IKEBAQgKlTpxbr8/b21igNEdmqYE9nDGwbgg/+jQMAnE7Jw9f7ruLVlsEaJyOqWKJydSj/nQn523LItT8CqgpICbnhF8hDu6G8OhyiRm2tYxIR3TW7KsrOnDmDAwcO4NSpUzh58iRSU1Ph5OSEZcuW3fZxBoMBP//8M2JiYpCUlARPT080bdoUvXr1QkBAQJlzKYoCX1/fMj8PEVGHqt7oUjsH667ds+yXY6loEuKBVuGe2gYjqmBC7wTx9IuQTdoUzZolXCoaSLgEddpoiMd6QHTtBaF30jYoEdFdsKuibMWKFdi1a1epHmMwGDB58mQcP34cfn5+aNWqFRITE7Fp0ybs2bMH7733HkJCQsqUKy0tDW+99RaklKhatSq6d++OunXr3vmBREQleLVFEI5ezcX59HwAwLyt8Zj7eHUEuPOXT3I8okZtKOPnQP78DeSG1YCUgKoWzaId2Fk0a1a5utYxiYhuy66Ksjp16qB69eqIiIhAREQE3njjjTs+ZtWqVTh+/Djq1KmDcePGwdW1aCH9mjVr8NVXX+Gjjz7CxIkTTcdnZWUhK+v290Zxc3ODj48PAKB27doYOHAgwsPDkZOTgw0bNmDChAkYO3YsmjRpctvnISIqiYtewaj7wjDy93MwFEpk5Bdidmw8Jv1fFegUri8jxyOcXSCe6wfZLBLq5/OApGu3jbh4FuqUERBPvQjx6DMQik7boEREt2BXRdkzzzxTquONRiPWrVsHAOjXr5+pIAOArl27YvPmzTh69CjOnDmDmjVrAgDWrl1b4sYdN+rUqRMGDhwIAGjevHmxsfr16yMpKQmrV69mUUZE96yqjwtebxWMRdsTAACHruRgxeFk9GpcSeNkRNoRdRpBiZoPueJzyM1F/7/DaIT86UvI/duh/GcYRHCYtiGJiEpgV0VZaR07dgzZ2dkIDg5GjRo1bhqPjIzE+fPnsWvXLlNR1qNHD3Tv3v22zyvE7T+pjoiIwO7dvOElEZXNwxE+2J+QjS3nMwEA3x9MQqNgdzQMctc4GZF2hKsbRJ8BkM3aQv1yAZCWXDRw+hjUSUMguveFeOBxCIV3BSIi6+HQP5HOnz8PACUWZABMhdj144CiTTt0Ot1t/yh3+EF/7ty5ctlAhIgcmxACA9qEINizaC2ZKoFZMXHIyC/UOBmR9kSjFlCiF0C0fcDcaTBAfrcE6pwJkMlXtYpGRHQTh54pS0pKAoBbFkj+/v7FjrsXX331FVq0aIGgoCDk5OTgzz//xOHDhzF69Oi7evyIESNu6nN2dsa0adMAAJUqaXupkv7aDTwDAwM1zUF3j+fMttzpfAUCmNLVA/2X70ehKpGcY8THe5Ix/ckGd5y1J8vge8yKBAYC70xF3tZNyFj8AdT01KL+YwcgJw6B52vD4fZ/T/Cc2SCeM9vC83VnDl2U5eXlAQBcXEq+yeT1NWbXj7sXKSkpWLhwITIyMuDu7o6qVati/PjxaNSo0T0/JxHRjRqEeOGtDtWx8N+iG+luOZOCFfvj0LNZuMbJiKyDa7sH4FS/CTI+mo787f8AAGRuDjIWTEH+1k3wHzIOOn+uxyQi7Th0USalLNP43Rg2bFiZHj979uzbjiclJZVLznt1/ROPxMREzTJQ6fCc2Za7PV+dqzgjNtQDe+KzAQAL/jmLqm4qavq73vZxVP74HrNest9IiEYtIb9dAuQWvVfyd8UgYWAvePcfjay6TTVOSHeL7zPb4gjnSwiB0NDQe368Q68pc3NzAwDk5+eXOH69/8ZdGYmIrJEiBIa2D4Wfa9GW30ZVYsaWy8gp4PoyouuEEFDaPgglegHQwLw7sszMQPrM8VCXzIDMytAuIBE5LIcuyq6vx0pOTi5xPCUlpdhxRETWzNdVj+EdwnB9JVlcZgGW7LyiaSYiayT8K0EZFg3RZwDgYv7gVe78F2r0YMj9OzVMR0SOyKGLsmrVqgEAzp49W+L4mTNnih1HRGTtmoZ4oEdD8+ZFG89m4O8z6RomIrJOQggonbpAiZoPpwbNzAPpqVAXTob6xXzI3BzN8hGRY3HooqxevXpwd3fHlStXSizMtm/fDgBo0aJFRUcjIrpnLzSphPqBbqb2xzsTcDnDoGEiIuslAkPgP3khvP4zBNA7mfplzIaiWbOj+zVMR0SOwqGLMr1ejy5dugAAli5dWmyXxTVr1uD8+fOoV68eatWqpVVEIqJS0ykCIzuEwcO56Ed8nrFofVlBoapxMiLrJHQ6eDz9ApQJc4FqN/yfn5IIdfZ4qN8tgbzF+nMiovJgV7sv7tmzBytXrizWZzQaMXbsWFO7e/fuxWa+unXrhoMHD+L48eMYOnQo6tWrh6SkJJw8eRJeXl4YMGBAheUnIiovgR5OGNw2FNP+uQwAOJuajy/2JuL1VsEaJyOyXiK0CpR3PoBctwJyzQ9AYdFGOfLvNZCH9kB5dRhERD2NUxKRPbKroiwjIwMnT54s1ielLNaXkVF8VyVnZ2dERUVh1apV2LJlC3bu3AkPDw906tQJvXr14iYfRGSz2lXxwuN1fLH2RBoAYM3xVDQJcUdkZS9tgxFZMaHXQ3R9HrJJa6hL5wKXzxcNXI2DOv0diC7PQjzZG8LJ6bbPQ0RUGkJqeZMrKrP4+Hjep4xKhefMtpT1fBkKVYxedx7n0oouvfJyVjDn8RoI9OAvlJbC95jtudU5kwUFkKu/hfxjFSBvuPw3vBqUV4dDVK1ZkTHpBnyf2RZHOF+8TxkREd2Ss07B6I5hcNEVbZSfaVAxOyYOhSo/jyO6E+HkBKX7K1DGTAWCbvhl6/J5qO+PhLrmB8hC3guQiMqORRkRkZ2r7OOC/q3Na8mOJOZi+aEkDRMR2RZRqz6UCfMgHnzC3FlYCPnLMqjTxkDGX9IuHBHZBRZlREQO4P9q+qBTdW9Te/mhZBy8kq1hIiLbIlxcofTuD2X4JMD/hvXm505CnTwM6p+/QKrc4ZSI7g2LMiIiByCEwJttghHqVbSWTJXA7Jh4ZOQZNU5GZFtEg2ZQohZAdOhs7iwwQC7/DOqssZCJCdqFIyKbxaKMiMhBuDvpMKpDOPTXfvKn5Boxb6u2mwUR2SLh7gGl71AoA8cC3r7mgROHoU4cAvWfdXxfEVGpsCgjInIgtQJc8UrzIFN7V1w2fj2eqmEiItslmkVCiV4I0bKDuTM/D/LrD6HOnwiZmqxZNiKyLSzKiIgczJN1/dA63MPU/nLvVZxKztMwEZHtEl7eUN58G+KN0YDHDfcAPLQHavQgqNs2cdaMiO6IRRkRkYMRQmBI21D4u+kBAEYVmLHlMnIKuLU30b1SWt8HJXoB0LiVuTMnG/Kz2VAXT4PMTNcsGxFZPxZlREQOyNtVj5EdwqAU3b4MCVkF+GjHFX6iT1QGwtcfyuDxEK8MBlzdzAN7tkKNGgS5d5t24YjIqrEoIyJyUI2C3dGzUYCp/c+5DPx9hp/mE5WFEAJKx4ehRM0H6jY2D2SmQ/3wfahL50DmZGkXkIisEosyIiIH1qtRJTQINH+i//HOK7iUnq9hIiL7ICoFQxkxGeL5NwBnZ1O/3LoRatRgyMN7NUxHRNaGRRkRkQPTKQIjOoTBy7nov4P8QokZW+JgKORNcInKSigKlM5doYyfB9Ssax5IS4Y6Nwrqso8g83K1C0hEVoNFGRGRgwv0cMLgdqGm9rm0fHy+56qGiYjsiwgJhzJmGsSzLwE6valfbvod6qShkCcOa5iOiKwBizIiIkJkZS90retnaq89kYatFzM1TERkX4ROB+XxnlDGzQIq1zAPJCZAnflfqD8uhSwwaBeQiDTFooyIiAAAfZsHoqafi6m9YFs8rmYVaJiIyP6IyjWgjJ0J8fhzgLj2a5iUkOt/hjp5OOS5k9oGJCJNsCgjIiIAgJNOwaiO4XDVF+2Tn21QMSsmDoUqt8knKk9C7wTl2T5Q3pkOhISbB+IvQp06Guov30IajdoFJKIKx6KMiIhMwr2d8WbrEFP7WFIuvjuQpGEiIvslataFMn4uxENPmTtVFXLN91CnjoK8fF67cERUoViUERFRMQ/W9MGDNbxN7RWHk7E/IVvDRET2Szi7QOn1GpRRU4CAIPPAhTNQ3xsOdd1KSLVQu4BEVCFYlBER0U36tw5BmJcTAEACmBMTh7Q8Xk5FZCmibmMo0fMh7nvE3Gk0Qq78EuoH70JejdMsGxFZHosyIiK6iZuTgtEdw6FXitaXpeYVYl5sPFTJ9WVEliJc3aG8PAjKkCjAx988cPoY1IlDoW78DVLlPQSJ7BGLMiIiKlFNf1f8p0Wgqb0nPhu/HE3RMBGRYxCNW0KZuAAispO505AP+e3HUOdGQaYkaheOiCyCRRkREd3SE3X80Kayp6n99b5EnEjK1TARkWMQHl5QXhsJ5c23AU/zGk8c3Q81ejDU2L8gOXNNZDdYlBER0S0JITC4bSgC3PUAgEIJzIyJQ7aBGw8QVQTRsgOUiQuAZpHmztwcyM/nQV00BTI9VbtwRFRuWJQREdFtebvoMLJDGK4tL8OVrAJ8uCOBn9ITVRDh7QdlwH8h/jMMcPMwD+zfATV6EOTuGM2yEVH5YFFGRER31DDIHc83rmRqbzmfiQ2n0zVMRORYhBBQ2v8flOj5QINm5oGsTKiLp0P9ZCZkdqZW8YiojFiUERHRXenRMACNgt1N7SW7ruBCer6GiYgcj/APhDJsIsSLbwLOLqZ+ueMfqFGDIQ/u0jAdEd0rFmVERHRXdIrAiPah8HbRAQAMhRIz/41DvpFbdBNVJCEElAcehxI1D6hV3zyQngJ1/iSoXy2EzM3RLiARlRqLMiIiumsB7k4Y2i7U1D6fno+le65qmIjIcYmgMCij34fo8R9Arzf1y3/XQ504BPLYAQ3TEVFpsCgjIqJSaRXuiafr+Zna606mIeZChoaJiByXUHRQHn0Wyri5QNUI80DyVaizxkH9/hPIfF5mTGTtWJQREVGpvdQsCBH+rqb2om0JuJJl0DARkWMT4VWhvDsD4skXAJ3O1C//+hXq5GGQp49pmI6I7oRFGRERlZqTTmB0xzC46Yv+G8kuUDErJg5GldvkE2lF6PVQnnoByrszgNAq5oErl6FOfwfqqq8hCwq0C0hEt8SijIiI7kmolzMGRIaY2seT8vDt/kQNExERAIhqtaCMnwPx6LOAuHaDQalCrv0R6vsjIS+e1TYgEd2ERRkREd2z+6t7o3NNH1N75ZEU7I3P1jAREQGAcHKG0uM/UMZMBQLNH57g0jmoU0ZC/W05ZGGhdgGJqBgWZUREVCZvtA5GuLezqT0nNg6puUYNExHRdaJWAyhR8yEeeNzcWWiE/PkbqNPfhky4pFk2IjJjUUZERGXiqlcwumMYnJSiy6TS8woxNzYOquT6MiJrIFxcobz4JpThEwG/SuaBsyegThoGdcNqSJX3GyTSEosyIiIqsxp+rni1ZZCpvS8hB6uOpGiYiIj+l2jQHEr0fIh2/2fuLDBA/vAp1NnjIZOuaJaNyNGxKCMionLxWG1ftK3iaWp/sz8RxxJzNUxERP9LuHtCeXUYlIH/BbzM60Fx/CDU6CFQ/10PyVluogrHooyIiMqFEAKDI0MR6K4HAKgSmBVzGVkGbiZAZG1Es7ZQJi4CWrY3d+bnQn61EOqCyZBpydqFI3JALMqIiKjceLroMLJDGK4tL8PVbCMWbkvgJ+9EVkh4eUPp/zbEayMBdw/zwMFdUKMGQ92+me9dogrCooyIiMpV/SB39G5i3kxg68VM/HEqTbtARHRLQggokZ2gTFwINGppHsjJgvx0FtSPp0NmpmsXkMhBsCgjIqJy161BAJqEuJvan+2+inOpeRomIqLbEb4BUIZMgHh5EODiZh7YHQs1ahDkvu3ahSNyACzKiIio3OkUgeHtw+DjogMAGAolZmyJQ56R224TWSshBJT7HoESNQ+o08g8kJkOddEUqEvnQuZkaReQyI6xKCMiIovwd9NjWPtQU/tShgGf7uKW20TWTgSGQBn5HkSv1wAn843h5da/oUYPgTyyT7twRHaKRRkREVlMizBPPFvf39T+83Q6/jmXoWEiIrobQlGgPPQUlPFzgRp1zAOpSVDnTIC6bDFkPi9JJiovLMqIiMiiXmwaiNoBrqb2h9sTkJBp0DAREd0tEVoZytvTIZ7pA+j0pn65aS3UiUMgTx3RMB2R/WBRRkREFuWkExjVIQzuTkX/5eQaVcyMiUNBIbfaJrIFQqeD8sRzUMbOAipXNw8kJkD94F2oK76ALOAHLURlwaKMiIgsLsTLGQPahJjaJ5PzsGx/ooaJiKi0RJUaUP47C+LxnoC49iuklJB//AT1vRGQ509rG5DIhrEoIyKiCnFfdW88UsvH1F51NAV74riTG5EtEU5OUJ59Cco704HgcPNA3AWoU0dBXf0dpNGoXUAiG8WijIiIKsxrLYNRxce8m9vc2Hik5PIXOCJbI2rWhTJ+LkTnJ82dhYWQv34HddoYyLgL2oUjskEsyoiIqMK46BWM7hgOZ50AAKTnF2JOTBwKVa4vI7I1wsUFyvOvQxn5HhAQZB44fwrq5OFQ/1gFqRZqF5DIhrAoIyKiClXN1wWvtQw2tQ9cycFPR5I1TEREZSHqNYESNR+i48PmTmMB5IrPoc4YC3k1XrtwRDaCRRkREVW4R2r5oENVL1P72wNJOHo1R8NERFQWws0dyiuDoQweD/j4mQdOHYE6cQjUTWshJWfEiW6FRRkREVU4IQQGRIYgyMMJAKBKYFZMHDLzeakTkS0TTVpDiV4A0eZ+c6chH3LZYqhzoyBTuOsqUUlYlBERkSY8nXUY1TEM15aXITHHiIXb4/lpOpGNE57eUF4fBaX/GMDTPCOOI/ugRg+BGvs33+dE/4NFGRERaaZuJTf0aRpoam+7mIXfT6ZpF4iIyo1o1RFK9EKgaRtzZ2425OdzoX44FTIjVbNsRNaGRRkREWnqmQb+aBbqYWov3X0VZ1PzNExEROVF+PhBGTgWou9QwM3dPLBvG9SowZC7Y7ULR2RFWJQREZGmFCEwvF0ofF11AIACVWLGljjkGVWNkxFReRBCQOnQGUrUAqB+U/NAVgbUxdOgfjILMps3kifHxqKMiIg05+umx/D2Yab25QwDluy8omEiIipvIiAQyrCJEL37A84upn65YzPU6EGQB3drmI5IWyzKiIjIKjQL9UD3Bv6m9l9n0rHpbLqGiYiovAlFgfLgE1AmzAMi6pkH0lKgzp8I9etFkHm8PQY5HhZlRERkNXo3DUTdSq6m9kc7riA+06BhIiKyBBEcBmXMVIgefQG93tQv//kDavQQyOOHtAtHpAEWZUREZDX0isDIDmHwcCr67ynPqGLGlssoKOT6MiJ7IxQdlEe7QRk3B6ha0zyQfBXqrLFQf/gM0pCvXUCiCsSijIiIrEqwpzMGtg0xtU+n5OOrfbzhLJG9EuHVoLw7E6Lr84By7VdTKSE3/AJ18jDIsye0DUhUAViUERGR1elQ1Rtdavv+f3t3Hh5Vdf9x/HNvJnsCCYGQhFV2EGUVUKm4FTeq/sCtVbQW608FQQR+rkAooCjKIhS31iIurYhgFSmlylZAEKSyyBYW2RLIQiAh2yS59/dHzIwpQUhIcmeS9+t5+jyec+4dvtPvc2bynXvPuZ72Z7sytfEIu7MBtZXhcsm87Tcyn5kqxTfzDhw7KmvK/8n69H3ZRYXOBQhUM4oyAIBP+l33WLWo792hbeb6FGXk8kcZUJsZLdvKfH6ajP63S4ZR0mlZsr+YL2vyaNlHDjgaH1BdKMoAAD4p2GVq9C8SFBRQ8odZdkGxpq1NVrFlOxwZgOpkBAXLvPN3Mke/IDXy3sqsIwdkTRol6x8LZBcXORcgUA0oygAAPqt5/WA93LOxp709NU8ff5/hYEQAaorR7mKZ42bK6Hejt7O4SPbCeTrx7KMqOnrIueCAKkZRBgDwade3rq9ftIj0tD/alq7vj/McI6AuMEJCZd73mMwRiVJUjKe/cPd2pY+8X9ZXn8u22J0V/o+iDADg0wzD0KO94hQXEShJsmzp1bXJyioodjgyADXF6Nxd5oRZMvpc4+10F8j+29uypo2VnZHqXHBAFaAoAwD4vPCgAI3um6Afl5cpI69Is9anyLZZXwbUFUZYhMwhI2U++ozM+tHegd3bZCU+Luvfy/hMgN+iKAMA+IW2MaG6v1sjT/ubI6f1xZ5MByMC4ASj++Vq+NoHCu5ztbczP0/2vNmyZk2UffKEY7EBlUVRBgDwG7d2aKAeCeGe9l82p2n/iXwHIwLgBLN+tKKeekHGkCelMO9ngrZtKrlqtvHfzgUHVAJFGQDAb5iGoeGXxys61CVJKrJsTV1zVLmFrC8D6hrDMGT2uVpm4mypc3fvQE627LemynrzZdnZWY7FB1QERRkAwK9Ehbj05BXx+nF5mZKzC/XWxuOOxgTAOUZ0jMzh42UMfkwKDvH025vWyEocJnvLNw5GB5wfijIAgN+5NC5cd3b2bo+94kCWlu8/5WBEAJxkGIbMq26UOf41qd3F3oGsk7JmT5I1d6bs3BznAgTOgaIMAOCX7rmkoTo2CvW039x4TEez3A5GBMBpRqM4maMmy7hriOQK9PTba7+SNWG47J1bHIwOODuKMgCAXwowDY26MkERQSVfZflFJevLCot5kCxQlxmmKfOXt8kcN0Nq0cY7cCJN1rSxsj58U3YBGwTBt1CUAQD8VqPwQD3eJ97TPpBZoLn/SXMwIgC+wohvJvOZqTJuu1cKCPD02yu+kPWHEbL37nQwOqAsijIAgF/r0yxSt7SL8rQX787UhiPZzgUEwGcYAQEyB9wt89lXpCYtvAOpKbJefkbWJ+/KLix0LkDgRxRlAAC/99vusbooOtjTnvV1itJy+EMLQAmjeWuZz02TcdMgyfjxz1/bkr30E1mTn5R9aJ+zAaLOoygDAPi9oABTo/smKDigZKP8bLelaWuTVWzZDkcGwFcYgYEyBz4g86kpUmyCd+DoQVkvjJa1+G+yi4qcCxB1GkUZAKBWaFovWP97WWNPe0danj7anu5gRAB8kdG6g8xxM2RcO8DbWVws++8fypryf7KTDzkXHOosijIAQK1xbav66teynqc9f1uGth7j2UQAyjKCQ2T++mGZT06UGjTyDhzcK2viSFnLPpVtsZMrag5FGQCg1jAMQ4/0aqz4yJLnE9mSpq9L0al8bkkCcCajYxeZ41+TceX13s6iQtkfvyPr1edkpx1zLjjUKRRlAIBaJSwwQKOvbCLXj99wJ/KKNPPrFNk268sAnMkIC5f52+Eyh42V6kd7B/Z8L2vCcFmrlvL5gWpHUQYAqHXaxITogW6xnva3yTn6bFemgxEB8HVGl8tkJs6ScdkvvJ0F+bLfnyNrZqLszAzHYkPtR1EGAKiVftU+Wpc1Cfe0532XqqSMPAcjAuDrjIh6Mh8eI+PhMVJ4pHfg+//IShwma/0KrpqhWlCUAQBqJcMwNLxPvBqEuiRJRZb0yppk5RYWOxwZAF9nXvYLmYmzpEt6ejtzc2T/ebqsN6bIzjrpVGiopSjKAAC1Vr0Ql0ZdmSCz5PFlOna6UK9vOM4v3QDOyYhqIPPxsTIeeFwKCfUObP5aVuLjsjd/7VxwqHUoygAAtVrnxmG6q3OMp736YJa+2n/KwYgA+AvDMGT2/aXMxFlS+0u8A9mnZL3+oqw/T5Odc9qx+FB7UJQBAGq9uzo31MWx3l+639p4XIdPFTgYEQB/YsTEynxyoox7HpaCgjz99vqVJVfNtm92MDrUBhRlAIBaL8A09OSVCYoMKvnaKyi29cqaZLmLeTgsgPNjmKbM6wbIHDtTatXeO3AyQ9bMRFnvzZGdz2ZCqByKMgBAndAwLFDDL4/3tH84WaC/bE51MCIA/siIayLzqSkyBj4guVyefnv1UlkThsves93B6OCvKMoAAHVGr6aR+lV778Nhl+w5qa8PZzsYEQB/ZJgBMm8aJPO5aVKzi7wD6cdlvfKcrPl/lu3mFmmcP9e5D0FlJSYmaseOHWf0G4aht956S/Xr13cgKgCo2x7o1kjfp+Zqf2bJH0yz1qeodXSIYiMCHY4MgL8xmraU+ewrsr+YL3vJx5JlSbYt+19/l719s8zfPSGjZVunw4QfoCirRqNHj1ZRUVGZvsmTJ6tevXoUZADgkMAAU2P6NtHIf/yg/CJLOW5Lr65N1gu/bK6A0r3zAeA8Ga5AGbfdK/vSy2S9M0M6dqRkIOWwrBfHyLj5Lhm33CnDxQ8/OLtaU5Tt379fW7du1d69e5WUlKTMzEwFBgbqgw8++Nnz3G63Pv30U61du1bp6emKiIhQly5ddPfddysmJuZnzz2XiIiIMu0ffvhBBw8e1KhRoy7odQEAFyahXpAe7dVY09elSJJ2pefpr1vTdV/XRg5HBsBfGRe1kzl2uuxP35f95WeSbUuWJXvx32Rv/Ubm70bKaNLC6TDho2rNmrIFCxboww8/1DfffKPMzMzzOsftdmvixIlasGCB8vPz1bNnT8XExGjlypV66qmndOzYsSqNcdmyZYqOjlbPnj3PfTAAoFpdfVF9Xduqnqe94PsMbTmW42BEAPydERQs864hMkdNlho29g4c2i9r0khZSz+RbRU7FyB8Vq25UtauXTu1bNlSrVu3VuvWrfXwww+f85xFixZp9+7dateunZ5//nmFhIRIkhYvXqx58+bp9ddf14QJEzzHnz59WqdP//wDAkNDQ8u9NTE3N1dr1qzRgAEDFBAQUMF3BwCoDg/3jNOutHwlZ7tlS5q+NlkzbrlIUSG15usRgAOM9p1ljp8p++O5slcvLeksKpL9ybuyv9sg88EnZDROcDZI+JRa861z++23V+j4oqIiLV1aMkmGDBniKcgkacCAAVq1apV27typ/fv3q1WrVpKkJUuWaMGCBT/7uv369dPQoUPP6F+9erXcbreuv/76CsUJAKg+oYGmxvRN0Jh/HlSRZSszv1gz16Vo7DVNZRqsLwNQeUZImIzBj8nu1lvWu7OkkydKBvbtkvWH4TIG/VbG1TfLMGvNjWu4ALWmKKuoXbt2KScnR40bN9ZFF110xnjv3r118OBBbdq0yVOU3XHHHRo0aNDPvq5xli/xf/3rX+rZs6caNGhw4cEDAKpMqwYh+l33WL216bgkaXNKjv6+84T+p9OFrSsGAEkyOveQmThb9l/flL1hVUmn2y37r2+VXDV7YLiMGNaz1nV1tig7ePCgJJVbkEnyFGKlx0mSWclfMnbu3KnDhw/rgQceqPC5Tz755Bl9QUFBmjJliiSpYcOGlYqpqrh+fGhio0Z8mPgLcuZfyFfNeKBhQ+08UaR/78+QJL23JV192zdRp7jICr8WOfM/5Mz/+F3OGjWSnpmi/HUrdOqNl2VnnSzp37lF9h+GK2LIEwq99paz/rjv7/wuXw6os9dL09PTJemsOyyWXtEqPe5CLFu2THFxcbrkkksu+LUAAFXPMAw917+tGkcGS5KKLVvjluzS6YKic5wJAOcv5Ipr1PC1DxTc+ypPn52bo6xZk3Xyhf9TcWaGg9HBSXX2Sll+fr4kKTg4uNzx0jVmpcdVVlZWljZs2KB77rmnUr9+TJs27WfH09PTZdt2ZcO7YKW/eKSlpTkWAyqGnPkX8lWzRvRprOe/PCTLlpKz8jXhi+0a0zehQp/f5Mz/kDP/4+85s4eMknFxD9l/fUvKK9n1tWDjGqUN+7WMex+VeVlfhyOsWv6er/NhGIbi4+MrfX6dvVJ2rkKmqgqdevXq6cMPP9Stt95aJa8HAKg+F8eG6Z5LvLeFrz2UrX/tO+VgRABqI8MwZF5+jczEWVKnbt6BnGzZb70s662psk9nORYfal6dLcpCQ0MlSQUFBeWOl/b/dFdGAEDtd8fFMercOMzTfnvTcR06Wf53BQBcCKNBQ5lPJMq491Ep2Ps3p73x37ISH5e9daOD0aEm1dmirHSDjIyM8u/dPXHiRJnjAAB1Q4Bp6Mkr4lUvuOSZku5iW1PXHFVBkeVwZABqI8MwZF59k8xxM6U2nbwDpzJlzZooa+5rsvNynQsQNaLOFmUtWrSQJB04cKDc8f3795c5DgBQd8SEBWrE5d61AYdOufXnb1MdjAhAbWfExsscM1nGnQ9KrkBPv732S1kThsvetdXB6FDd6mxR1qFDB4WFhen48ePlFmYbNmyQJHXv3r2mQwMA+ICeTSJ0W4doT/ufe09q7UHWeACoPoYZILP//8gcO11q0cY7kJEq69XnZf3tbdlnWXoD/1ZnizKXy6Ubb7xRkvTOO++U2WVx8eLFOnjwoDp06KA2bdqc7SUAALXc4K6xat3Au87jjxuO6fhpt4MRAagLjITmMp9+Wcatv5ECAjz99lefy5r4hOx9uxyMDtXBsJ3cT70Kbd68WZ988omnnZSUJMMwyhRVgwYNKnPly+12a8KECUpKSlJ0dLQ6dOig9PR0JSUlKTIyUpMnT1ZcXFyNvo+KSklJYUt8VAg58y/ky3kp2W6NXPKD8n5cU9YuJkQv9m8hl1n+NvnkzP+QM/9Tl3JmH9wn653pUvIhb6dhyrhxoIxf/VpGYODZT/YRdSFfbIn/o6ysLCUlJXn+J5Vsa//TvqyssredBAUFafz48Ro0aJCCgoK0ceNGpaamql+/fnrppZd8viADAFS/+MggPdbb+32wJyNfH2ypvX9YAPAtRovWMp+fLuOGgVLpMxNtS/Y/Fsh6YZTsw+XvjwD/UmuulNVVXClDRZEz/0K+fMes9Sn68ifPLEu8tpm6xYefcRw58z/kzP/U1ZzZe3fIemeGlHbM2xngkvGre2TcOEjGT2519CV1IV9cKQMAoAb8vmdjNa0X5GlPX5eszLwiByMCUNcYbTrJHP+ajGtu9nYWF8n+9H1ZU/5PdsoR54LDBaEoAwDgPIS4TI3pm6DAH9eSncov1ox1ybK44QRADTKCQ2T+5hGZI/8gNfjJ83R/SJI18QlZX/5dtsVzFf0NRRkAAOepZXSIhvSI9bS/O5arRTtOOBgRgLrK6NRV5vhZMq64zttZ6Jb90Z9lvfq87J/e4gifR1EGAEAF3Ng2Spc3i/C039+Spl1peQ5GBKCuMsLCZT44QubQ56R6Ud6BPdtlTRgha/U/Hd17AOePogwAgAowDEPDeserUZhLkmTZ0qtrj+q0u9jhyADUVUbX3jITZ0s9rvB2FuTJfu+Psl6bIDszw7HYcH4oygAAqKCI4ACN6pug0keVpeYUafb6Y/wiDcAxRmQ9mf/7lIzfj5bCvFfztX2zrMRhsjas4jPKh1GUAQBQCR0bheneSxt52l8fztY/9550LiAAdZ5hGDJ7XSVzwizpkp7egdwc2X96VdYbL8nOPnX2F4BjKMoAAKikgRc3UJe4ME/7z9+mal96joMRAYBkRMXIfHysjPuHScGh3oHN62SNHyb7u/XOBYdyUZQBAFBJpmFo5BUJqh9S8sBWd7GtsUt2Kq+Q9WUAnGUYhsxf9JeZ+JrU/hLvQPYpWX98QdY702XnnnYsPpRFUQYAwAWIDnXpicvjPe0fTuRpxqr9DkYEAF5Gw8Yyn5wo457fS4FBnn776xWyEofL3vEfB6NDKYoyAAAuUPeECA3s1MDT/nz7Ma3+IcvBiADAyzBNmdf9Sua4GdJF7bwDmemypo+X9cHrsvN5tIeTKMoAAKgC93ZppHYxIZ72nA3HdCzb7WBEAFCWEddU5lMvybj9PinA5em3V/5D1h9GyE7a4WB0dRtFGQAAVcBlGhrdN0HhQSXry/KKLL2yNlmFxWxBDcB3GAEBMm+5S+Zzr0pNW3oH0o7JmvqMrI//IruQH5RqGkUZAABVpHFEkJ65vq2nnZSRr/e3pDkYEQCUz2h2kcznXpVx812S8WNJYNuyly2SNXGk7IN7nQ2wjqEoAwCgCl3brpFu7RznaX+684S+PcoOZwB8j+EKlPk/98l8+iWpcRPvQMphWS+MlvXZh7KLipwLsA6hKAMAoIo90a+VmtX37nI24+sUZeQWOhgRAJyd0aq9zLEzZFx/q7fTsmR//jdZL46RffSQc8HVERRlAABUsZDAAI3p20RBAYYkKaugWDPWpajYYn0ZAN9kBAfLvPshmaMnSzGx3oFD+2RNekLWPxfKtngGY3WhKAMAoBq0iArWQz0ae9pbj+fqkx0ZDkYEAOdmtL9EZuJrMn7R39tZVCR7wVxZU5+VnZrsWGy1GUUZAADVpH+b+rqyeaSn/det6dqRmutgRABwbkZImMz7h8kcPk6q730Go/bulDVhhKwVS2TbXPmvShRlAABUE8Mw9FjvOMWGB0qSLFt6dW2ysgu4BQiA7zMu6SlzwiwZvfp5O90Fsj98Q9aM8bJPsLtsVaEoAwCgGkUEBWh03wT9uLxM6blFmrU+hV+ZAfgFIzxS5u9HyXzkKSnCe+VfO76Tlfi4rHVf8XlWBSjKAACoZu0bhuq+Lo087Q1HTmvJnpPOBQQAFWT0uFLmhNlSl17ezrxc2X+ZKWvOC7KzMp0LrhagKAMAoAbc3qmBusaHe9p/2ZyqA5n5DkYEABVj1IuWOfQ5GQ+OkELDvAPfbZA1fpjsb9c6F5yfoygDAKAGmIahkZfHKyokQJJUaNmauiZZ+UWWw5EBwPkzDEPmFdfJTJwldeziHTidLeuNl2S9/arsnGzH4vNXFGUAANSQqFCXRl6RoB+Xl+lolltvbTzuaEwAUBlGg0Yyn5gg4zePSEHBnn77m1Wyxj8ue9smB6PzPxRlAADUoK7x4Rp0cYyn/dX+U1p54JSDEQFA5RimKfOam2WOnym16egdOHVC1mt/kDVvtux8HgNyPijKAACoYb++tKHaNwz1tF//5rhSst0ORgQAlWfEJsgc84KMO34ruVyefvvfy2QlDlfBts3OBecnKMoAAKhhLtPQqCvjFR5U8jWcX2Rp6pqjKixmfRkA/2SYATJvGCjz+RlS89begYxUZY4dqqw/TZftLnAsPl9HUQYAgAMaRwRpWO84T3vfiQLN+44HsQLwb0aT5jKfmSrjV/dIprfUyF08X9bEJ2Tv3+1gdL6LogwAAIdc0byebmob5Wl/titTG4+cdi4gAKgChssl89bfyHz2FSm+mXfg2FFZU56Steg92UWFzgXogyjKAABw0IPdY9Uiyrtz2cz1KcrI5Y8VAP7PaNFG5tjpCrv9N5Lx476ztiV7yceyJo+SfeSAswH6EIoyAAAcFOwyNaZvgoIDSv5gyS4o1rS1ySq2bIcjA4ALZwQGqd5vH1eDya9Ljby3bOvID7ImjZK15GPZxcXOBegjKMoAAHBYs/rBeviyxp729tQ8ffx9hoMRAUDVCurURea4mTKuvtnbWVwke9F7sl56SvaxI47F5gsoygAA8AHXtaqvq1rU87Q/2pau74/zfB8AtYcREirz3kdkPjFBim7oHTiwR9bEJ2R99blsq27uQktRBgCADzAMQ4/2bqy4iEBJkmVLr65NVlYBt/UAqF2Mi7vJTHxNxuXXeDvdbtl/e1vWtLGy0487FptTKMoAAPARYYEBGt03Qa4fv50z8or02tcpsm3WlwGoXYywCJm/GynzsWelyPregd3bZE0YLuvfy+rUZx9FGQAAPqRtTKju7xrraW88elqLd2c6GBEAVB+jWx+ZE2ZL3S/3dubnyZ43W9asibJP1o31tRRlAAD4mF91iFaPhHBPe+5/0rTvRL6DEQFA9TEi68t85GkZD42Swryffdq2Sdb4x2V9s7rWXzWjKAMAwMeYhqHhl8crOtQlSSqybL2y5qhyC1lfBqB2MgxDZu9+MhNnS527ewdyT8t++xXZb74sOzvLsfiqG0UZAAA+KCrEpSeviNePj1tVcnah3txY9xa/A6hbjOgYmcPHyxg8VAoO9fTb366VNX6o7O82OBhd9aEoAwDAR10aF647O8d42isPZGn5/lMORgQA1c8wDJlX3SBz/EypXWfvQPYpWX+cLOsvM2Xn5jgXYDWgKAMAwIfdc0lDdWzk/bX4zY3HdCSrwMGIAKBmGI3iZI6aJOPuIVJgkKffXveVrAmPy97xnXPBVTGKMgAAfFiAaWjUlQmKCCr5ys4vsvXKmmS5i+vmA1YB1C2Gacq8/jaZY2dIF7XzDpxIlzV9nKwP35Bd4P8bIVGUAQDg4xqFB+rxPvGe9oHMAs39T5qDEQFAzTLim8p86iUZt98nBbg8/faKJbL+MEL23p0ORnfhKMoAAPADfZpF6pZ2UZ72F7szteFwtnMBAUANMwICZN5yl8xnX5GatPAOpKbIevkZWQvmyi50OxfgBaAoAwDAT/y2e6wuig72tGetT1FaTqGDEQFAzTOat5L53DQZN90hGT+WM7Yle82/JD/dAISiDAAAPxEUYGp03wSFuEo2ys92W5q2NlnFVu1+qCoA/DcjMFDmwPtlPjVFik0o6bv3URn1ox2OrHIoygAA8CNN6wXrfy+L87QLLVun3TxUGkDdZLTuIHPcTBm/HSHzsr5Oh1NprnMfAgAAfMk1F9XTlmM5ig5x6d4ujRQYYJz7JACopYzgYBlXXud0GBeEogwAAD9jGIZGXB4v06AYA4DagNsXAQDwQxRkAFB7UJQBAAAAgIMoygAAAADAQRRlAAAAAOAgijIAAAAAcBBFGQAAAAA4iKIMAAAAABxEUQYAAAAADqIoAwAAAAAHUZQBAAAAgIMoygAAAADAQRRlAAAAAOAgijIAAAAAcBBFGQAAAAA4iKIMAAAAABxEUQYAAAAADqIoAwAAAAAHUZQBAAAAgIMoygAAAADAQRRlAAAAAOAgl9MB4MIYhuF0CJJ8Jw6cP3LmX8iX/yFn/oec+R9y5l9qc74u9L0Ztm3bVRQLAAAAAKCCuH0RAAAAABxEUYYL8vTTT+vpp592OgxUADnzL+TL/5Az/0PO/A858y/k69xYU4YL4na7nQ4BFUTO/Av58j/kzP+QM/9DzvwL+To3rpQBAAAAgIMoygAAAADAQRRlAAAAAOAgijIAAAAAcBDPKQMAAAAAB3GlDAAAAAAcRFEGAAAAAA6iKAMAAAAAB1GUAQAAAICDKMoAAAAAwEEUZQAAAADgIIoyAAAAAHCQy+kA4J/cbrc+/fRTrV27Vunp6YqIiFCXLl109913KyYmxunw6qTExETt2LHjrOPPPvusunbtekb/qlWrtHTpUh05ckQul0vt2rXTwIED1b59+2qMtu7Yv3+/tm7dqr179yopKUmZmZkKDAzUBx988LPnVSYvu3fv1sKFC7Vnzx4VFRWpadOmuuGGG3T11VdX8buqvSqar/nz52vBggVnfb3bbrtN9957b7lj5OvCFRQUaMuWLfr222+1b98+paWlybIsxcXFqXfv3howYIBCQkLKPZc55ozK5Ix55rzFixdr165dOnTokE6dOqXCwkJFRUWpU6dOuu2229SsWbNyz2OenT+KMlSY2+3WxIkTtXv3bkVHR6tnz55KS0vTypUrtXnzZk2aNElxcXFOh1ln9e7du9w/Qho0aHBG37vvvqsvvvhCQUFBuvTSS1VYWKitW7dqy5YtevLJJ9WrV6+aCLlWW7BggTZt2lShcyqTl2+++UbTpk2Tbdvq2LGjIiMjtX37ds2ZM0cHDx7UAw88UFVvqVarTL4kqX379uV+7rVq1arc48lX1VizZo3efPNNSVKzZs3UpUsX5eXlac+ePZo/f77Wrl2rxMRE1a9fv8x5zDHnVDZnEvPMSYsWLVJ+fr5atGih5s2bS5IOHz6s1atXa926dRozZoy6detW5hzmWcVQlKHCFi1apN27d6tdu3Z6/vnnPQXA4sWLNW/ePL3++uuaMGGCw1HWXYMHD1ZsbOw5j9u+fbu++OILRUZGatKkSYqPj5ck7dmzR4mJiZozZ446deqkiIiI6g65VmvXrp1atmyp1q1bq3Xr1nr44Yd/9vjK5OX06dOaM2eOLMvSqFGj1Lt3b0nSyZMnNW7cOH3xxRfq0aOHOnfuXH1vtJaoaL5KXXfddef9Ky75qjoul0v9+/fXLbfc4pkrkpSZmakpU6bowIEDmjt3rkaMGOEZY445qzI5K8U8c86YMWPUqlUrBQUFlelftmyZ/vSnP+mNN97Q66+/LtMsWRnFPKs41pShQoqKirR06VJJ0pAhQ8pckRkwYIBatGihnTt3av/+/U6FiPP0+eefS5IGDhxY5ouxXbt2+uUvf6nc3FytWLHCqfBqjdtvv1133XWXevTooaioqHMeX5m8LF++XLm5uerZs6fnS0ySoqKidN9990kq+dEE51bRfFUG+ao6/fr100MPPVRmrkhSdHS0hgwZIqnkl/eioiLPGHPMWZXJWWWQs6rVoUOHMwoySerfv7/i4uKUmZmp5ORkTz/zrOIoylAhu3btUk5Ojho3bqyLLrrojPHSSVSZ239Qc9xut7Zv3y5J6tOnzxnjpX3ffvttjcZV11U2L6Xt8s7p3r27AgMDtW3bNrnd7qoOGZVAvmpGixYtJEmFhYXKzs6WxBzzdeXlrLLIWc0pvTrmcpXcgMc8qxxuX0SFHDx4UJLKLcgk733dpceh5i1fvlynT5+WYRiKj49Xr1691LBhwzLHJCcnq7CwUPXq1St3Y5bS/JLHmlXZvBw6dEhS+esqXC6Xmjdvrn379ik5OVktW7as+sCh7du364cffpDb7VZMTIy6det21nUu5KtmHD9+XJIUEBDguUWKOebbysvZTzHPfM+qVauUnJys+Ph4z9IJ5lnlUJShQtLT0yXprDsslm4mUXocat7ChQvLtN977z0NGjRId9xxh6fvXHkMCQlReHi4cnJylJeXp9DQ0OoLGB6VyUtubq5ycnIklb+ZS2n/vn37lJ6eXiu/yHzB6tWry7Q/+ugj9e7dW0OHDi1zmzf5qjlLliyRJHXt2lWBgYGSmGO+rryc/RTzzHmfffaZDh8+rIKCAh09elSHDx9WdHS0RowY4blixjyrHIoyVEh+fr4kKTg4uNzx0g/F0uNQczp27Khrr71W7du3V3R0tNLT07V+/XotXLhQ8+fPV1hYmG6++WZJ3vyUd394qeDgYOXk5Cg/P5+irIZUJi8/nWtnm5el/czLqhcXF6fBgwerW7duatiwoXJycrRz5069//772rBhgyzL0pgxYzzHk6+asXnzZq1YsUIBAQG6++67Pf3MMd91tpxJzDNfsmXLFm3bts3TjomJ0eOPP17m6hbzrHIoylAhtm1f0Diqz39/iSUkJGjgwIFq3bq1Jk+erPnz5+v6669XUFCQJ0+GYZz19chlzSMv/ueqq64q0w4JCVHfvn118cUXa/To0dq4caN2797Nc/9q0JEjRzRr1izZtq3BgweX+UWdOeabfi5nEvPMl4wdO1aSlJOTo0OHDmnBggVKTEzUPffco4EDB0pinlUWG32gQkqvmBQUFJQ7Xtp/tod1ouZ16dJFrVu3Vm5urvbs2SPp3HmU5FlISy5rTmXy8tP8MC99R3R0tGfr7i1btnj6yVf1ysjI0AsvvKCcnBwNGDDAc3dAKeaY7zlXzn4O88w54eHh6tixo5555hm1atVKH330kfbu3SuJeVZZFGWokNINIzIyMsodP3HiRJnj4BtKH7Z58uRJSefOY35+vnJychQeHs6tizWoMnkJCwtTWFiYJO/8+2/MS2eUbgOdmZnp6SNf1ScrK0uTJk1Senq6rr76ag0ePPiMY5hjvuV8cnYuzDNnuVwuXXHFFbJt27N7IvOscijKUCGl29UeOHCg3PHS55OVHgffULp4tvTXpYSEBAUGBiorK6vcD83S/DZv3rzmgkSl81I638p7PmBRUZEOHTqkwMBAJSQkVEPUOJvTp09LOvNXXfJV9fLy8vTiiy/q6NGj6tWrlx555JFyb51ijvmO883ZuTDPnBcZGSmppMiWmGeVRVGGCunQoYPCwsJ0/PjxcguzDRs2SCp5ngR8Q1ZWlnbu3CnJuw1tUFCQOnfuLElav379GeeU9vXo0aOGooRU+byUzrfyztm8ebMKCwvVuXPnn110japl27Y2btwo6cztnclX1SosLNTLL7+sffv2qUuXLnriiSc8u8D9N+aYb6hIzn4O88w37NixQ5LUuHFjScyzyqIoQ4W4XC7deOONkqR33nmnzA44ixcv1sGDB9WhQwe1adPGqRDrpD179mj79u1nLJxNTU3V1KlTVVBQoJ49e5bZnvaWW26RVLKFfkpKSpnX+vLLLxUaGqprr722Zt4APCqTl+uuu06hoaHatGmT54cRSTp16pTef/99SdKAAQNqIPq6JSsrS6tWrVJhYWGZ/vz8fL399ttKSkpSVFSUevXqVWacfFUdy7I0c+ZMff/99+rYsaNGjx7teYDt2TDHnFXRnDHPnLdz506tW7dOxcXFZfqLior0j3/8Q6tXr1ZQUJCuuOIKzxjzrOIMm+1PUEFut1sTJkxQUlKSoqOj1aFDB6WnpyspKUmRkZGaPHmyZw0TasbKlSs1Z84cRUdHKz4+XlFRUcrIyND+/ftVWFioZs2aady4capfv36Z8+bOnaslS5YoODhYl1xyiYqLi7V161ZZlqWRI0eqT58+Dr2j2mPz5s365JNPPO2kpCQZhlHmh4tBgwaVubpcmbysX79e06dPlyR16tRJkZGR2rZtm3JycnTTTTfpwQcfrMZ3WXtUJF+pqakaNmyYQkND1bRpU8XExCg3N1cHDhxQdna2wsPD9dRTT6lDhw5n/Dvkq2osWbJEc+fOlST16tXrrGtgBw8erHr16nnazDHnVDRnzDPnlf6NERkZqVatWikyMlLZ2dk6dOiQMjMzFRgYqKFDh5YpyiTmWUVRlKFS3G63Fi1apDVr1igjI0Ph4eHq2rWr7r777lq7ANOXHTlyREuXLlVSUpIyMjKUk5Oj4OBgNWnSRJdffrn69+9/1sv9K1eu1NKlS3X06FEFBASobdu2GjRoULlfcKi40i+zn/PYY495dhD76XkVzcuuXbu0cOFCJSUlqaioSE2aNNENN9yga665pireSp1QkXzl5eV5/v8+duyYsrOzZZqmYmNj1aVLFw0YMOCsD0GVyFdVmD9/vhYsWHDO42bPnq3Y2NgyfcwxZ1Q0Z8wz56Wmpuqrr77Sjh07lJqaqqysLLlcLsXGxuriiy/WzTfffNYf45ln54+iDAAAAAAcxJoyAAAAAHAQRRkAAAAAOIiiDAAAAAAcRFEGAAAAAA6iKAMAAAAAB1GUAQAAAICDKMoAAAAAwEEUZQAAAADgIIoyAAAAAHAQRRkAAAAAOIiiDAAAAAAcRFEGAAAAAA5yOR0AAAD+aP78+VqwYIHnv0ulpqZq5cqVkqS77rrLidAAAH6GK2UAAFShtLQ0LViwwFOwAQBwLhRlAAAAAOAgijIAAAAAcBBrygAAqCJDhw5VWlqap/3fa8r69eunoUOHlulzu9368ssvtWHDBh05ckS5ubmKiIhQ27Zt1b9/f3Xt2rXcf6v0tcePH6+mTZvq008/1ebNm5WRkSG3211mnRsAwLdRlAEAUEXq1aun3Nxc5eTkSJLq169fZjwsLKxMOyUlRVOmTFFKSookyTAMhYaG6tSpU9q0aZM2bdqk/v3766GHHjrrv3ns2DHNmDFDp06dUmBgoFwuvtoBwN/wyQ0AQBV58cUX9f3332vChAmSpLfffvusx+bk5GjSpElKS0tT586ddeedd6pNmzYKDAxUbm6uli9frvnz52vZsmVKSEjQzTffXO7rvPvuu2rQoIFGjBihTp06yTRNJScnV8v7AwBUD9aUAQDggIULF3oKsueee04dO3ZUYGCgpJIragMGDNCwYcMkSZ988omKi4vLfR3DMDR27Fh17txZplnytZ6QkFAzbwIAUCUoygAAqGG2bWvFihWSpAEDBiggIKDc4y677DKFhoYqOztb+/fvL/eYq666SjExMdUWKwCg+nH7IgAANezIkSM6ffq0JGnOnDkyDOOsx+bn50sqef5Z27Ztzxhv37599QQJAKgxFGUAANSwzMxMz39nZWWd1zlut7vc/v/eTAQA4H8oygAAqGGWZXn++6233lJUVFSlX6t0HRkAwH/xSQ4AQA37aRF26NAh5wIBAPgEijIAAKrQT9eH2bZd7jHNmjVTaGioJGndunU1EhcAwHdRlAEAUIV++oDo0odI/7eAgABdc801kqRVq1Zp165dP/uapZuCAABqJ4oyAACqUHx8vFyukiXby5cvP+vVsjvuuEONGzdWcXGxJk+erMWLF5fZ9CM3N1ffffedZs+erXHjxtVI7AAAZ7DRBwAAVSg4OFhXXXWVli9frvfff18ff/yxIiMjZRiGevfurfvvv1+SFBERobFjx2rq1Kk6ePCg5s2bp3nz5ik8PFyWZSkvL8/zmnFxcU69HQBADaAoAwCgig0ZMkQxMTFav369UlNTlZ6eLknKzs4uc1xsbKymTJmitWvXat26dTpw4ICysrJkmqZiY2PVsmVL9ejRQz169HDibQAAaohhn+2+CgAAAABAtWNNGQAAAAA4iKIMAAAAABxEUQYAAAAADqIoAwAAAAAHUZQBAAAAgIMoygAAAADAQRRlAAAAAOAgijIAAAAAcBBFGQAAAAA4iKIMAAAAABxEUQYAAAAADqIoAwAAAAAHUZQBAAAAgIMoygAAAADAQRRlAAAAAOAgijIAAAAAcBBFGQAAAAA4iKIMAAAAABxEUQYAAAAADvp/25FQe4A+wvwAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.semilogy(hist_jacobi)\n", "plt.semilogy(hist_gs)\n", "plt.legend(['Jacobi', 'Gauss-Seidel'])\n", "plt.xlabel('Iter')\n", "plt.ylabel('Error')" ] }, { "cell_type": "markdown", "id": "7897e5c6", "metadata": {}, "source": [ "### 비고\n", "- Iterative 기법은 매 반복 횟수마다 $A_1^{-1} A_2$ 행렬의 Eigenvalue 만큼 오차가 감쇄함\n", "\n", " $$\n", " \\begin{align}\n", " x^{(k+1)} &= (A_1^{-1}A_2) x^{(k)} + A_1^{-1} b \\\\\n", " x^{(k)} &= (A_1^{-1}A_2) x^{(k-1)} + A_1^{-1} b \\\\\n", " \\Delta x^{(k+1)} &= (A_1^{-1}A_2) \\Delta x^{(k)}\n", " \\end{align}\n", " $$\n", " \n", "- Jacobi와 Gauss Seidel 기법 Eigenvalue 비교" ] }, { "cell_type": "code", "execution_count": 13, "id": "84f6c310", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.1395243512483186, 0.13952435124831886, 0.40726962059008465, 0.4072696205900847, 0.6420203273973373, 0.6420203273973383, 0.8247583655207655, 0.8247583655207658, 0.9406793858965665, 0.9406793858965665]\n" ] } ], "source": [ "# Jacobi\n", "A1 = np.diag([2.04]*(n))\n", "A2 = A - A1\n", "\n", "# Eigenvalue, Eigenvector\n", "eig = np.linalg.eig(np.linalg.inv(A1) @ A2)\n", "l_jac = sorted(np.abs(eig[0]))\n", "print(l_jac)" ] }, { "cell_type": "code", "execution_count": 14, "id": "e92c8ce4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.0, 7.154396559720807e-05, 7.16105441542434e-05, 7.16105441542434e-05, 7.167790710375776e-05, 0.019467044587691305, 0.16586854385559155, 0.41219010079138535, 0.6802263614964851, 0.8848777070507405]\n" ] } ], "source": [ "# GS\n", "A1 = np.diag([2.04]*(n)) + np.diag([-1]*(n-1), -1)\n", "A2 = np.diag([-1]*(n-1), 1)\n", "\n", "# Eigenvalue, Eigenvector\n", "eig = np.linalg.eig(np.linalg.inv(A1) @ A2)\n", "l_gs = sorted(np.abs(eig[0]))\n", "print(l_gs)" ] }, { "cell_type": "code", "execution_count": 15, "id": "75499817", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.5425206454135214, 0.5425206454135184)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Jacobi 10회 반복, GS 5회 반복\n", "l_jac[-1]**10, l_gs[-1]**5" ] }, { "cell_type": "markdown", "id": "f3bbc88e", "metadata": {}, "source": [ "### Succesive overelaxation (SOR)\n", "Gauss-Seidel 결과에 relxation parameter $\\omega$ 를 이용해서 계산 결과를 가속 또는 감속할 수 있다. \n", "\n", "즉\n", "\n", "$$\n", "T_{i}^{(n+1)} = T_{i}^{(n)} + \\omega \\left (\n", "\\tilde{T}_{i}^{(n+1)} - T_{i}^{(n)}\n", "\\right )\n", "$$\n", "\n", "여기서 $\\tilde{T}_{i}^{(n+1)}$ 은 Gauss-Seidel 결과이다.\n", "\n", "$\\omega \\in 0, 2)$ 에 따라 감속 또는 가속된다.\n", "\n", "- $0 < \\omega < 1$ - Gauss-Seidel에 비해 감속\n", "- $\\omega = 1$ - Gauss-Seidel 방법\n", "- $1 < \\omega < 2$ - Gauss-Seidel에 비해 가속\n", "\n", "최적의 값은 문제마다 달라지므로 찾아야 한다.\n", "\n", "### DIY\n", "* 위 예제에 대해서 i번째 값에 대한 SOR 수식을 유도하시오.\n", "\n", " $$\n", " T^{(n+1)}_i = \\alpha_{i-1} T^{(n)}_{i-1} + \\alpha_{i} T^{(n)}_{i} + \\alpha_{i+1} T^{(n)}_{i+1} + \\beta b_i\n", " $$\n", "\n", "* SOR 방법을 구현하시오. $\\omega \\in (1.1, 1.8)$ 사이에서 값을 변화시키면서 수렴 속도를 비교하시오.\n", "\n", "* Point Jacobi, Gauss Seidel, SOR 방법에 대해 격자 크기를 달리하면서 해의 변화를 관찰하고, 계산시간의 증가를 파악하라." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.2" } }, "nbformat": 4, "nbformat_minor": 5 }